zoukankan      html  css  js  c++  java
  • exercise: 序列化和反序列化Xml --CSharp

     

        class XmlHelper
        {
    
    
            public XmlHelper()
            {
            }
    
    
    
            /// <summary>
            /// 读取 xml 文件内容
            /// </summary>
            /// <typeparam name="T"></typeparam>
            /// <param name="fileName"></param>
            /// <returns></returns>
            public static T Load<T>(string fileName)
            {
                XmlSerializer xmlSerializer = new XmlSerializer(typeof(T));
    
                using (var fs = new FileStream(fileName, FileMode.Open, FileAccess.Read))
                {
                    return (T)xmlSerializer.Deserialize(fs);
                }
            }
    
            /// <summary>
            /// 写入 xml 文件
            /// </summary>
            /// <typeparam name="T"></typeparam>
            /// <param name="fileName"></param>
            /// <param name="data"></param>
            public static void Write<T>(string fileName, T data)
            {
                XmlWriterSettings settings = new XmlWriterSettings
                {
                    Indent = true,
                    IndentChars = "    ",
                    NewLineChars = Environment.NewLine,
                    Encoding = Encoding.UTF8
                };
    
                XmlSerializerNamespaces ns = new XmlSerializerNamespaces();
                ns.Add(string.Empty, string.Empty);
    
                using (var fs = new FileStream(fileName, FileMode.Truncate, FileAccess.Write))
                {
                    using (XmlWriter writer = XmlWriter.Create(fs, settings))
                    {
                        XmlSerializer serializer = new XmlSerializer(typeof(T));
                        serializer.Serialize(writer, data, ns);
                    }
                }
            }
    
        }
    
     
        class SomeXmlConfig
        {
    
            [XmlElement("hello")]
            public string Hello { get; set; }
    
            [XmlElement("world")]
            public string World { get; set; }
    
    
            public SomeXmlConfig()
            {
            }
    
        }

    --- THE END ---

  • 相关阅读:
    《安富莱嵌入式周报》第222期:2021.07.19--2021.07.25
    嵌入式新闻早班车-第14期
    状态压缩动态规划【DP】
    Spring事务
    设计模式--组合模式
    设计模式--状态模式
    设计模式--中介者模式
    设计模式--责任链模式
    设计模式--享元模式
    设计模式--委派模式
  • 原文地址:https://www.cnblogs.com/shadow-abyss/p/14302506.html
Copyright © 2011-2022 走看看