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 ; 你可以直接使用它,或仅仅是为了灵感。

(编辑:输出剪断 – 不再有帮助)