xml序列化与反序列化

<?xml version="1.0" encoding="utf-8"?>
<Order >
  <ID>1</ID>
  <Name>凉鞋订单</Name>
  <DetailsList>
    <OrderDetails>
      <Name>凉0</Name>
      <Num>0</Num>
      <Color>red</Color>
    </OrderDetails>
    <OrderDetails>
      <Name>凉1</Name>
      <Num>1</Num>
      <Color>red</Color>
    </OrderDetails>
    <OrderDetails>
      <Name>凉2</Name>
      <Num>2</Num>
      <Color>red</Color>
    </OrderDetails>
  </DetailsList>
</Order>

对象类为:

    [Serializable]
    public class Order
    {
        public Order()
        {
            DetailsList = new List<OrderDetails>();
            ID = "";
            Name = "";
        }
        [XmlElement]
        public string ID;

        [XmlElement]
        public string Name;

        
        public List<OrderDetails> DetailsList;

    }
    public class OrderDetails
    {
        [XmlElement]
        public string Name;

        [XmlElement]
        public int Num;

        [XmlElement]
        public string Color;
    }

.net 对xml支持的相当好,相起来也相当方便,在保存一些用户修改化配置的时候xml文件可以大显身手。

下面介绍一下xml序列化与反序列化。

可以序列化的项:

公共类的公共读/写属性和字段

  • 实现 ICollection 或 IEnumerable 的类

    Note注意

    只有集合会被序列化,而公共属性却不会。

  • XmlElement 对象

  • XmlNode 对象

  • DataSet 对象

注意:私有字段和方法都不能被序列化。

要序列化对象,首先创建要序列化的对象并设置它的公共属性和字段。为此,必须确定要用以存储 XML 流的传输格式(或者作为流,或者作为文件)。例如,如果 XML 流必须以永久形式保存,则创建 FileStream 对象。然后保存成文件。

序列化 XmlElement 和XmlAttribute,序列化包含返回复杂对象的字段的类如父子关系,对应在xml文件应该是嵌套的,

讲的挺乱,直接上代码更清晰,

点击下载

原文地址:https://www.cnblogs.com/langhua/p/3234425.html