2010-07-07 37 views
2

我的问题是我想使用CollectionDataControlAttribute来反序列化一个没有组元素的集合。 xml看起来像这样:CollectionDataDataContractAttribute列表中没有组元素

<RootElement> 
    <SomeProperty /> 
    <ListElementEntry /> 
    <ListElementEntry /> 
    <ListElementEntry /> 
    <ListElementEntry /> 
</RootElement> 

其中ListElementEntry出现零次或多次。

帮助表示赞赏

+0

是否有您需要使用DataContractSerializer的特定原因(我不知道CollectionDataControlAttribute是什么)。如果这是一个选项,XmlSerializer可以轻松实现。 – 2010-07-07 18:35:06

回答

2

是否必须DataContractSerializer?您可以选择使用XmlSerializer为WCF,然后你可以使用:

[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通常是更好的选择。

+0

这正是我最后想要的。谢谢您的帮助。 – jamier 2010-07-12 16:19:42