zoukankan      html  css  js  c++  java
  • <经验杂谈>C#/.Net中xml的Serialization序列化与DeSerializetion反序列化

      1.先讲概念:.Net Framework提供了对应的System.Xml.Seriazliation.XmlSerializer负责把对象序列化到XML,和从XML中反序列化为对象。Serializer的使用比较直观,需要多注意的是XML序列化相关的Attribute,怎么把这些attribute应用到我们的对象,以及对象公共属性上面去,生成满足预期格式的XML。
      本文列出了最常用的方法和特性,涵盖日常大部分的转换工作,希望大家在工作中快速上手。为了给大家直观的印象,这里给出具体的使用代码,为了节省篇幅,代码异常处理没有添加,各位程序师们使用的时候酌情添加。

      2.上代码:

            /// <summary>
            /// xml序列化
            /// </summary>
            /// <param name="obj">实体对象</param>
            /// <returns>返回不带命名空间的xml字符串</returns>
            public static string ObjectToXml(object obj)
            {
                string msg;
                var xml = new XmlSerializer(obj.GetType());
                var stream = new MemoryStream();
                var n = new XmlSerializerNamespaces();
                n.Add(string.Empty, string.Empty);
                xml.Serialize(stream, obj, n);
                stream.Position = 0;
                using (var reader = new StreamReader(stream))
                {
                    msg = reader.ReadToEnd();
                    stream.Close();
                }
                return msg;
            }
    
            /// <summary>
            /// xml反序列化
            /// </summary>
            /// <param name="xml">xml字符串</param>
            /// <param name="objType">对象类型</param>
            /// <returns></returns>
            public static object XmlToObject(string xml, Type objType)
            {
                object obj;
                if (string.IsNullOrWhiteSpace(xml)) return null;
                using (var reader = new StringReader(xml))
                {
                    var ser = new XmlSerializer(objType);
                    obj = ser.Deserialize(reader);
                    reader.Close();
                }
                return obj;
            }

    这里主要讲了Xml Serializer的用法,C#类和Xml之间的结构映射,希望足够程序师们对付日常工作。

  • 相关阅读:
    WPF之感触
    C# WinForm 给DataTable中指定位置添加列
    MyEclipse 8.6 download 官方下载地址
    将博客搬至CSDN
    Building Microservices with Spring Cloud
    Building Microservices with Spring Cloud
    Building Microservices with Spring Cloud
    Building Microservices with Spring Cloud
    Building Microservices with Spring Cloud
    Building Microservices with Spring Cloud
  • 原文地址:https://www.cnblogs.com/benpao/p/4491440.html
Copyright © 2011-2022 走看看