2012-07-31 14 views
5

Estoy serializando un objeto a XML. Tengo algo como esto:serialización XML de la 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; } 
} 

Cuando serializarlo a XML, quiero que se vea como esto:

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

Pero, en cambio, se ve así:

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

¿Alguna idea de cómo deshacerse de bList en la salida? Puedo proporcionar más ejemplos de código si es necesario

Gracias, de Scott

Respuesta

15

Añadir el atributo [XmlElement] para el tratamiento de la colección como una lista plana de elementos:

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

para obtener más información haga clic here

+0

Excelente, sencillo y directo - estaba tratando con [esto] (http://stackoverflow.com/questions/1237683/xml-serialization-of-listt-xml-root) pero tu solución es mucho más simple. – Iztoksson