using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
using RW_Tool;
using RW_Tool.DataSource.FileOrStream;
using ConfigurationTool.Serializer;
using SingletonTool;
namespaceConfigurationTool.Config
{
//Singlethon сущность конфига publicclassConfigEntity<T>
: ISignlethonWithParams<ConfigParams>
whereT : class, new()
{
//Параметры конфигаpublic ConfigParams Params { privateset; get; }
//Объект сериализацииprivate ISerializer<T> Serializer;
//Данные, хранимые в конфигеpublic T Data { set; get; } = new T();
publicvoidSetParams(ConfigParams param)
{
Params = param;
switch (param.Format)
{
case EnumFormat.XML: Serializer = new XMLSerializer<T>(Params.ConfigPath); break;
case EnumFormat.Binary: Serializer = new BinarySerializer<T>(Params.ConfigPath); break;
}
if (File.Exists(Params.ConfigPath))
Import();
Export();
}
//Прочитать файлpublicvoidImport()
{
Data = Serializer.Read();
}
//Сохранить в файлpublicvoidExport()
{
Serializer.Write(Data);
}
}
}