2010-07-07 66 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