使用XmlSerializer序列化List <>

Rob*_*uch 5 c# xml-serialization

我已经定义了以下类.

Document.cs

public class Document {
  // ...
  [XmlAttribute]
  public string Status { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

DocumentOrder.cs

public class DocumentOrder {
  // ...
  [XmlAttribute]
  public string Name { get; set; }
  public List<Document> Documents { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

将此序列化为XML时,我得到:

<DocumentOrder Name="myname">
  <Documents>
    <Document Status="new"/>
    // ...
  </Documents>
</DocumentOrder>
Run Code Online (Sandbox Code Playgroud)

但是我想这样做,即Document成为孩子们的元素DocumentOrder.

<DocumentOrder Name="myname">
  <Document Status="new"/>
  <Document Status="new"/>
  <Document Status="new"/>
  // The document element has other attributes to distinguish...
</DocumentOrder>
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

Jof*_*ern 4

你可以试试 :

public class DocumentOrder {
  // ...
  [XmlAttribute]
  public string Name { get; set; }
  [XmlElement("Document")]
  public List<Document> Documents { get; set; }
}
Run Code Online (Sandbox Code Playgroud)