XmlSerialization Collection as Array
我正在尝试序列化需要使用多个同名元素的自定义类。
我尝试过使用xmlarray,但它将它们包含在另一个元素中。
我希望我的xml看起来像这样。
some text some more text
我的代码:
[Serializable(), XmlRoot("root")] public class test { [XmlArray("trees")] public ArrayList MyProp1 = new ArrayList(); public test() { MyProp1.Add("some text"); MyProp1.Add("some more text"); } }
尝试使用[XmlElement("trees")]
:
[Serializable(), XmlRoot("root")] public class test { [XmlElement("trees")] public List MyProp1 = new List (); public test() { MyProp1.Add("some text"); MyProp1.Add("some more text"); } }
注意我将ArrayList
更改为List
以清除输出; 在1.1中, StringCollection
将是另一种选择,尽管它具有不同的区分大小写规则。
(编辑:已废弃 – 我的第二篇文章 ( [XmlElement]
)是要走的路 – 我要留下这个用于后代使用xsd.exe
)
xsd.exe
是你的朋友。 将所需的xml复制到文件( foo.xml
)中,然后使用:
xsd foo.xml xsd foo.xsd /classes
现在阅读foo.cs
; 你可以直接使用它,或仅仅是为了灵感。
(编辑:输出剪断 – 不再有帮助)