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>
コレクション エンティティに属性を追加したい場合:
つまり、XML シリアル化後にオブジェクト要素に属性を追加します。次のようなものが必要です。
<Rats count=“2″> <Rat>little rat</Rat> <Rat>old rat</Rat> </Rats>
[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; } }
従来の XML 配列のシリアル化では、配列自体の追加要素が取得されます。
[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>