2010-07-07 1 views
2

Mon problème est que je voudrais utiliser CollectionDataControlAttribute pour désérialiser une collection qui n'a pas d'élément de groupe. Le fichier XML ressemble à ceci:CollectionDataContractAttribute pour la liste sans élément de groupe

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

Lorsque ListElementEntry apparaît zéro ou plusieurs fois.

Aide Apprécié

+0

Existe-t-il une raison spécifique pour laquelle vous devez utiliser DataContractSerializer (je ne sais pas ce qu'est CollectionDataControlAttribute). XmlSerializer peut facilement y parvenir, si c'est une option. –

Répondre

2

-t-il être DataContractSerializer? Vous pouvez choisir d'utiliser XmlSerializer pour WCF, et vous pouvez utiliser:

[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>(); 
} 

En fin de compte, DataContractSerializer est tout simplement pas conçu pour vous donner le même niveau de contrôle xml - ce qui est la raison pour laquelle il ne supporte même pas les attributs. Si vous avez besoin de xml spécifique, XmlSerializer est généralement un meilleur choix.

+0

Cest exactement ce que je suis allé à la fin. Merci pour l'aide. – jamier

Questions connexes