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);
            }
        }
    }
  • 相关阅读:
    cron表达式
    mybatis中的#{}和${}
    mysql免安装版使用
    关于jpa添加一对多数据时外键值为空的问题
    关于时间格式化和格式转换
    属性和属性节点
    ErrorException: ORA-00904: : 标识符无效
    345. 反转字符串中的元音字母
    java 解决nginx代理的跨域访问问题
    633. 平方数之和
  • 原文地址:https://www.cnblogs.com/yao2yao4/p/3203132.html
Copyright © 2011-2022 走看看