XML反序列化很方便,範例:
[XmlRoot(Root = "result")] public class UniMsgSetResult { [XmlAttribute("resultCode")] public int resultCode; [XmlElement("uniMsgSet")] public UniMsgSet uniMsgSet; }
<result resultCode="0"> <UniMsgSet>...</UniMsgSet> </result>
集合類型範例:
[XmlRoot("result")] public class GetDiskInnerResult { public string parentCatalogID; //String32 待查询目录的父目录ID。如果当前目录为root,则父目录ID为空。 [XmlArray("catalogList"), XmlArrayItem("catalogInfo")] public List<CatalogInfo> catalogList;// CatalogInfo[] 查询节点下的目录列表 [XmlArray("contentList"), XmlArrayItem("contentInfo")] public List<ContentInfo> contentList; // ContentInfo[] 查询节点下的内容列表 }
<result> <parentCatalogID>1</parentCatalogID> <catalogList> <catalogInfo>...</catalogInfo> <catalogInfo>...</catalogInfo> </catalogList> <contentList> <contentInfo>...</contentInfo> <contentInfo>...</contentInfo> </contentList> </result>
如果要為集合實體新增屬性:
In order words, add an attribute to an object element after xml serialization,
If you want something like,
<Rats count=“2″> <Rat>little rat</Rat> <Rat>old rat</Rat> </Rats>
The C# code is
#
[XmlType(“Rats”)] public class Rats { [XmlAttribute(“count”)] public int Count { get; set; } [XmlElement(“Rat”)] // now the array element will be as same as the object element Rats. public string[] Rat { get; set; } }
[XmlType(“Rats”)] public class Rats { [XmlAttribute(“count”)] public int Count { get; set; } [XmlArray(“Rats”)] [XmlArrayItem(“Rat”)] public string[] Rat { get; set; } }
<Rats count=“2″> <Rats> <Rat>little rat</Rat> <Rat>old rat</Rat> </Rats> </Rats>