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 的类
注意 只有集合会被序列化,而公共属性却不会。
-
XmlElement 对象
-
XmlNode 对象
-
DataSet 对象
注意:私有字段和方法都不能被序列化。
要序列化对象,首先创建要序列化的对象并设置它的公共属性和字段。为此,必须确定要用以存储 XML 流的传输格式(或者作为流,或者作为文件)。例如,如果 XML 流必须以永久形式保存,则创建 FileStream 对象。然后保存成文件。
序列化 XmlElement 和XmlAttribute,序列化包含返回复杂对象的字段的类如父子关系,对应在xml文件应该是嵌套的,
讲的挺乱,直接上代码更清晰,
作者:逐帆
出处:http://www.cnblogs.com/langhua/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。