XML序列化和反序列化 以及相关类的写法

类的写法:

省网办数据对接中运用到

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml.Serialization;

namespace SWBExchange.Common.Entities
{
    public class Body
    {
        [XmlElement(ElementName = "BasicInfo")]
        public BasicInfo BasicInfo { get; set; }

        [XmlElement(ElementName = "UserInfos")]
        public UserInfos UserInfos { get; set; }

        [XmlElement(ElementName = "OrgInfos")]
        public OrgInfos OrgInfos { get; set; }

        [XmlElement(ElementName = "ServiceInfo")]
        public ServiceInfo ServiceInfo { get; set; }

        [XmlElement(ElementName = "ApasInfo")]
        public ApasInfo ApasInfo { get; set; }

        [XmlElement(ElementName = "Review")]
        public Review Review { get; set; }

        [XmlElement(ElementName = "Node")]
        public Node Node { get; set; }

        [XmlElement(ElementName = "Proposer")]
        public Proposer Proposer { get; set; }

        [XmlElement(ElementName = "Operator")]
        public Operator Operator { get; set; }

        [XmlArray("Expresses"), XmlArrayItem("Express")]
        public List<Express> Expresses { get; set; }

        [XmlArray("FormInfos"), XmlArrayItem("FormInfo")]
        public List<FormInfo> FormInfos { get; set; }

        [XmlArray("Attrs"), XmlArrayItem("Attr")]
        public List<Attr> Attrs { get; set; }

        [XmlArray("Licenses"), XmlArrayItem("License")]
        public List<License> Licenses { get; set; }

        [XmlElement(ElementName = "SMS")]
        public SMS SMS { get; set; }
    }
}
    public class Helper
    {
        #region 反序列化
        public static string ObjectToXML<T>(T t)
        {
            return ObjectToXML<T>(t, Encoding.UTF8);
        }

        /// <summary>
        /// 将object对象序列化成XML
        /// </summary>
        /// <param name="o"></param>
        /// <returns></returns>
        public static string ObjectToXML<T>(T t, Encoding encoding)
        {
            XmlSerializer ser = new XmlSerializer(t.GetType());
            Encoding utf8EncodingWithNoByteOrderMark = new UTF8Encoding(false);
            using (MemoryStream mem = new MemoryStream())
            {
                using (XmlTextWriter writer = new XmlTextWriter(mem, utf8EncodingWithNoByteOrderMark))
                {
                    XmlSerializerNamespaces ns = new XmlSerializerNamespaces();
                    ns.Add("", "");
                    ser.Serialize(writer, t, ns);
                    return encoding.GetString(mem.ToArray());
                }
            }
        }
        #endregion

        #region 序列化
        public static T XMLToObject<T>(string source)
        {
            return XMLToObject<T>(source, Encoding.UTF8);
        }

        public static T XMLToObject<T>(string source, Encoding encoding)
        {
            XmlSerializer mySerializer = new XmlSerializer(typeof(T));
            using (MemoryStream stream = new MemoryStream(encoding.GetBytes(source)))
            {
                return (T)mySerializer.Deserialize(stream);
            }
        }
        #endregion

  

时间: 2024-08-30 16:28:32

XML序列化和反序列化 以及相关类的写法的相关文章

Xml序列化、反序列化帮助类

之前从网络上找了一个Xml处理帮助类,并整理了一下,这个帮助类针对Object类型进行序列化和反序列化,而不需要提前定义Xml的结构,把它放在这儿供以后使用 1 /// <summary> 2 /// 功能:Xml序列化.反序列化帮助类 3 /// 说明: 4 /// 创建人: 5 /// 创建时间:2014年3月13日 6 /// </summary> 7 public static class XmlHelper 8 { 9 /// <summary> 10 ///

XML 序列化与反序列化

XML序列化与反序列化 1.将一个类转化为XML文件 /// <summary> /// 对象序列化成XML文件 /// </summary> /// <param name="type">对象类型</param> /// <param name="obj">对象</param> /// <param name="fileName">序列化的XML文件路径<

c# XML序列化与反序列化 属性字段标识

序列化对象 public class People { [XmlAttribute("NAME")] public string Name { set; get; } [XmlAttribute("AGE")] public int Age { set; get; } } [XmlRoot("Root")] public class Student : People { [XmlElement("CLASS")] public

初识序列化和反序列化,使用BinaryFormatter类、ISerializable接口、XmlSerializer类进行序列化和反序列化

序列化是将对象转换成字节流的过程,反序列化是把字节流转换成对象的过程.对象一旦被序列化,就可以把对象状态保存到硬盘的某个位置,甚至还可以通过网络发送给另外一台机器上运行的进程.本篇主要包括: ● 使用BinaryFormatter类进行序列化和反序列化● 使用ISerializable接口自定义序列化过程● 使用XmlSerializer类进行序列化和反序列化 □ 使用BinaryFormatter类进行序列化和反序列化 首先把需要序列化的类打上[Serializable]特性,如果某个字段不需

XmlSerializer 对象的Xml序列化和反序列化,XMLROOT别名设置

这篇随笔对应的.Net命名空间是System.Xml.Serialization:文中的示例代码需要引用这个命名空间. 为什么要做序列化和反序列化? .Net程序执行时,对象都驻留在内存中:内存中的对象如果需要传递给其他系统使用:或者在关机时需要保存下来以便下次再次启动程序使用就需要序列化和反序列化. 范围:本文只介绍xml序列化,其实序列化可以是二进制的序列化,也可以是其他格式的序列化. 看一段最简单的Xml序列化代码 1 2 3 4 5 6 7 8 9 10 11 12 class Prog

Json/XML序列化和反序列化

1.json序列化和反序列化 序列化是将对象状态转换为可保持或传输的格式的过程; 反序列化,它将流转换为对象; 1)Json.Net 推荐使用Json.Net类库,需要引入的命名空间; 序列化:JsonConvert.SerializeObject 反序列化:JsonConvert.DeserializeObject 2)使用JavaScriptSerializer类 使用JavaScriptSerializer方式需要引入的命名空间,这个在程序集System.Web.Extensions.dl

Note4:XML序列化和反序列化

XML序列化和反序列化 待总结!

.NET XML序列化与反序列化

闲着没事,写了两个通用的XML序列化与反序列化的方法. 贴出来当作笔记吧! /// <summary> /// XML序列化 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="className"></param> /// <returns></returns> public stat

C#操作XML序列化与反序列化

1 public class XmlSerializerHelper 2 { 3 /// <summary> 4 /// 从XML文件中反序列化读取对象 5 /// </summary> 6 /// <typeparam name="T"></typeparam> 7 /// <param name="filePath"></param> 8 /// <param name="r