BinarySerializer.cs

44 lines | 1.044 kB Blame History Raw Download
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

using System.IO;
using System.Runtime.Serialization.Formatters.Binary;

using ConfigurationTool.CustomSerializer;

using RW_Tool;
using RW_Tool.DataSource.FileOrStream;

using RW_Tool.Interface;
using ConfigurationTool.RW.Bin;

namespace ConfigurationTool.Serializer
{
    class BinarySerializer<T>
        :
        RWI<T, DS_FileOrStream>,
        ISerializer<T>
        where T : class, new()
    {
        public BinarySerializer(string file) : base(new DS_File() { FilePath = file })
        {
            Reader = new Bin_Reader<T>();
            Writer = new Bin_Writer<T>();
        }
        public BinarySerializer(Stream stream) : base(new DS_Stream() { Stream = stream })
        {
            Reader = new Bin_Reader<T>();
            Writer = new Bin_Writer<T>();
        }

        public T Read()
            => Reader.Read(DataStorage);

        public void Write(T entity)
            => Writer.Write(entity, DataStorage);
    }
}