XMLSerializer.cs

43 lines | 1.167 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.Xml.Serialization;

namespace ConfigurationTool.Serializer
{
    class XMLSerializer<T>
        : ISerializer<T>
    {

        public T Import(string file)
        {
            // передаем в конструктор тип класса
            XmlSerializer formatter = new XmlSerializer(typeof(T));

            // десериализация
            using (FileStream fs = new FileStream(file, FileMode.Open))
            {
                return (T)formatter.Deserialize(fs);
            }
        }

        public void Export(T data, string file)
        {
            // передаем в конструктор тип класса
            XmlSerializer formatter = new XmlSerializer(typeof(T));

            // получаем поток, куда будем записывать сериализованный объект
            using (FileStream fs = new FileStream(file, FileMode.Create))
            {
                formatter.Serialize(fs, data);
            }            
        }

        
    }
}