MVP? MVP!

i love C#
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

泛型类的 序列化/反序列化

Posted on 2008-12-11 14:58  renhb  阅读(430)  评论(2)    收藏  举报

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.Runtime.Serialization.Formatters.Binary;

namespace GenerateCode
{
    /// <summary>
    /// 泛型 序列化+反序列化
    /// </summary>
    /// <typeparam name="SerializeType"></typeparam>
    public class SerializeFactory<SerializeType>
    {
        public static void SerializeFile(string fileName, SerializeType type)
        {
            try
            {
                using (FileStream fs = new FileStream(Path.Combine(Environment.CurrentDirectory ,fileName), FileMode.OpenOrCreate))
                {
                    BinaryFormatter formatter = new BinaryFormatter();
                    formatter.Serialize(fs, type);
                }
            }
            catch(Exception ex)
            {
               
            }
        }
        public static SerializeType DeserializeFile(string fileName)
        {
            using (FileStream fs = new FileStream(Path.Combine(Environment.CurrentDirectory , fileName), FileMode.OpenOrCreate))
            {
                if (fs.Length == 0)
                {
                    return default(SerializeType);
                }
                BinaryFormatter formatter = new BinaryFormatter();
                SerializeType t = (SerializeType)formatter.Deserialize(fs);
                return t;
            }
        }
    }
}

public static void SaveConfig<T>(T data) where T : SerializableInterface
        {
            SerializeFactory<T>.SerializeFile(data.SerializeFileName, data);
            data.Refresh();
        }

 by yaosansi