我的问题是我想使用 CollectionDataControlAttribute 来反序列化一个没有组元素的集合。 xml 看起来像这样:
<RootElement>
<SomeProperty />
<ListElementEntry />
<ListElementEntry />
<ListElementEntry />
<ListElementEntry />
</RootElement>
其中 ListElementEntry 出现零次或多次。
感谢帮助
最佳答案
是否必须是DataContractSerializer
?您可以选择对 WCF 使用 XmlSerializer
,然后您可以使用:
[XmlRoot("RootElement"), XmlType("RootElement")]
public class Foo {
public string SomeProperty {get;set;}
[XmlElement("ListElementEntry")]
public List<Bar> Bars {get {return bars;}}
private readonly List<Bar> bars = new List<Bar>();
}
最终,DataContractSerializer
只是未设计来为您提供相同级别的 xml 控制 - 这就是它甚至不支持属性的原因。如果您需要特定的 xml,XmlSerializer
通常是更好的选择。
关于c# - 没有组元素的列表的 CollectionDataContractAttribute,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3197554/