2012-07-31 15 views
5

Sto serializzando un oggetto in XML. Ho qualcosa di simile:Serializzazione XML della lista

Class A 
{ 
    public string propertyA1 { get; set; } 
    public List<B> bList { get; set; } 
} 

Class B 
{ 
    public string num {get; set;} 
    public string propertyB1 { get; set; } 
} 

Quando ho serializzare in XML, voglio farlo sembrare come questo:

<A> 
    <propertyA1>someVal</propertyA1> 
    <B num=1> 
    <propertyB1>someVal</propertyB1> 
    </B> 
    <B num=2> 
    <propertyB1>someVal</propertyB1> 
    </B> 
</A> 

Ma, invece sembra che questo:

<A> 
    <propertyA1>someVal</propertyA1> 
    <bList> 
    <B num=1> 
     <propertyB1>someVal</propertyB1> 
    </B> 
    <B num=2> 
     <propertyB1>someVal</propertyB1> 
    </B> 
    </bList> 
</A> 

Qualche idea su come sbarazzarsi di bList nell'output? Posso fornire più codice di esempio, se necessario

Grazie, Scott

risposta

15

Aggiungere l'attributo [XmlElement] per trattare la collezione come una semplice lista di elementi:

Class A 
{ 
    public string propertyA1 { get; set; } 
    [XmlElement("B")] 
    public List<B> bList { get; set; } 
} 

Per maggiori info clicca here

+0

eccellente, semplice e diretto - stava cercando utilizzando [questo] (http://stackoverflow.com/questions/1237683/xml-serialization-of-listt-xml-root) ma la tua soluzione è molto più semplice. – Iztoksson

Problemi correlati