C#::XML
XMLでデータをやり取りするとき、C#側のアプリはXMLSerializer使えば楽だよね!という話を以前(id:lord_hollow:20091203#p1)書いたけれども、「狙ったXMLを出力するクラス構成を一発で書いてやるぜ!」と息巻いてコードを書いたのに間違ってしまって悔しかったので晒し上げ。
ミスった内容:配列の各要素の要素名を要素のクラスのXmlType属性で指定しようとした。
つまり、本来は↓のようにすべきだったところを、
public class Define { [XmlElement("port")] public List<Port> Ports{get; set;} } public class Port { ... }
↓のようにしてしまったことで、port要素として出力すべきところをPorts要素として出力してしまったのでした!
public class Define { public List<Port> Ports{get; set;} } [XmlType("port")] public class Port { ... }
まぁ、Portsの型はあくまでも"List