2010-05-28 3 views
5

ho bisogno di XML che assomiglia a questoCome serializzare questo XML in .NET (array)

<foo> 
    <bar ... /> 
    <bar ... /> 
</foo> 

e attualmente hanno la seguente struttura di classe:

[XmlRoot("foo")] 
public class Foo 
{ 
    [XmlArrayItem("bar")] 
    public List<Bar> myBars; 
} 

Ma questo mi dà XML in cui bar gli oggetti sono avvolti all'interno di un elemento barre. Come dovrei definire il mio XmlAttributes personalizzato in modo da ottenere la struttura Xml di cui ho bisogno?

risposta

7

ho dovuto risolvere qualcosa di simile a ieri, e questa è stata la soluzione per me:

[XmlRoot("foo")] 
public class Foo 
{ 
    [XmlElement("bar")] 
    public List<Bar> myBars; 
} 
3

La soluzione che uso è questo:

[XmlRoot("foo")] 
public class Foo : List<Bar> 
{ 
} 

[XmlType("bar")] 
public class Bar 
{ 
} 

In realtà, ho definito Foo come List<T> , quindi funziona come una lista generica. Il tipo in quell'elenco deve solo definire l'attributo XmlType.

+0

Può avere una sola risposta esatta :(Mi sarebbe piaciuto contrassegnare entrambe le risposte corrette. – Morri

+0

Scegli me, scegli me! ;-) – Steven