zoukankan      html  css  js  c++  java
  • 序列化和反序列化

    代码:

    internal static class Class1
    {
        private static readonly string XML_FOLDER = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData),
            "CompanyName", "ProjectName");
        private static readonly string XML_FILE = Path.Combine(XML_FOLDER, "config.xml");
    
        static Class1()
        {
            if (!Directory.Exists(XML_FOLDER))
            {
                Directory.CreateDirectory(XML_FOLDER);
            }
        }
    
        internal static T Deserialize<T>()
        {
            return (T)new XmlSerializer(typeof(T)).Deserialize(new FileStream(XML_FILE, FileMode.OpenOrCreate, FileAccess.ReadWrite));
        }
        internal static void Serialize(this object obj)
        {
            new XmlSerializer(obj.GetType()).Serialize(new FileStream(XML_FILE, FileMode.Create, FileAccess.ReadWrite), obj);
        }
    }

    用法:

    new List<string> { "asd", "dfd" }.Serialize();
    var a = Class1.Deserialize<List<string>>();
    internal static class Class3
    {
        private static readonly string XML_FOLDER = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData),
            "CompanyName", "ProjectName");
        private static readonly string XML_FILE = Path.Combine(XML_FOLDER, "config.xml");
    
        static Class3()
        {
            if (!Directory.Exists(XML_FOLDER))
            {
                Directory.CreateDirectory(XML_FOLDER);
            }
        }
    
        internal static T Deserialize<T>()
        {
            using (var stream = new FileStream(XML_FILE, FileMode.OpenOrCreate, FileAccess.ReadWrite))
            {
                return (T)new XmlSerializer(typeof(T)).Deserialize(stream);
            }
        }
        internal static void Serialize(this object obj)
        {
            using (var stream = new FileStream(XML_FILE, FileMode.Create, FileAccess.ReadWrite))
            {
                new XmlSerializer(obj.GetType()).Serialize(stream, obj);
            }
        }
    }
  • 相关阅读:
    silverlight 自定义 鼠标 双击事件
    silverlight 常用特效
    silverlight 碰撞检测
    silverlight的自定义依赖属性
    在程序代码中集成跨域服务文件
    Silverlight动画基础
    silverlight 虚线框
    建立纯代码的silverlight项目
    silverlight字符串加密之二
    silverlight3 加载其他xap
  • 原文地址:https://www.cnblogs.com/yao2yao4/p/3203132.html
Copyright © 2011-2022 走看看