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

        利用泛型实现XML的序列化与反序列化。

        1、序列化

            /// <summary>
            /// 将一个对象序列化为string
            /// </summary>
            /// <typeparam name="T">对象类型</typeparam>
            /// <param name="o">待序列化的对象</param>
            /// <returns>序列化后的字符串</returns>
            public static string ToXmlString<T>(T o)
            {
                XmlSerializer xs = new XmlSerializer(typeof(T));
                XmlSerializerNamespaces xmlns = new XmlSerializerNamespaces();
                xmlns.Add(String.Empty, String.Empty);
                string result = string.Empty;
                using (StringWriter sw = new StringWriter())
                {
                    xs.Serialize(sw, o, xmlns);
                    result = sw.ToString();
                }
                return result;
            }

        2、反序列化

            /// <summary>
            /// 将string反序列化为一个对象
            /// </summary>
            /// <typeparam name="T">对象类型</typeparam>
            /// <param name="xmlString">待反序列化的字符串</param>
            /// <returns>反序列化后的对象</returns>
            public static T FromXmlString<T>(string xmlString) where T : class
            {
                T result = default(T);
                if (string.IsNullOrWhiteSpace(xmlString))
                {
                    return result;
                }
                XmlSerializer xs = new XmlSerializer(typeof(T));
    
                using (StringReader sr = new StringReader(xmlString))
                {
                    result = xs.Deserialize(sr) as T;
                }
                return result;
            }
  • 相关阅读:
    wpf 控件回车事件中调用tab实现方法
    C#中M的N次方显示
    新概念英语第三册单词
    新概念英语第二册单词
    手把手教你搭建一个vue项目
    Vuex里的module选项和移动端布局
    Vuex与axios的封装和调用
    Vue路由
    Vue脚手架的搭建和路由配置
    Vue全家桶之一Vue(基础知识篇)
  • 原文地址:https://www.cnblogs.com/huatao/p/4689245.html
Copyright © 2011-2022 走看看