2013-06-24 16 views
5

Ho definito le seguenti classi.Serializing List <> con XmlSerializer

Document.cs

public class Document { 
    // ... 
    [XmlAttribute] 
    public string Status { get; set; } 
} 

DocumentOrder.cs

public class DocumentOrder { 
    // ... 
    [XmlAttribute] 
    public string Name { get; set; } 
    public List<Document> Documents { get; set; } 
} 

durante la serializzazione l'accaduto a un XML ottengo:

<DocumentOrder Name="myname"> 
    <Documents> 
    <Document Status="new"/> 
    // ... 
    </Documents> 
</DocumentOrder> 

ma mi piacerebbe avere così, cioè essere gli elementi Document sono figli di DocumentOrder.

<DocumentOrder Name="myname"> 
    <Document Status="new"/> 
    <Document Status="new"/> 
    <Document Status="new"/> 
    // The document element has other attributes to distinguish... 
</DocumentOrder> 

Come posso fare?

+0

vedi [questa] (http://stackoverflow.com/questions/3303165/using-xmlarrayitem-attribute-senza-xmlarray-on-serializable-c-sharp-class) risposta –

risposta

4

si può provare:

public class DocumentOrder { 
    // ... 
    [XmlAttribute] 
    public string Name { get; set; } 
    [XmlElement("Document")] 
    public List<Document> Documents { get; set; } 
} 
+1

+1 mi avete battuto :) –