序列化列表<>使用XmlSerializer

时间:2013-06-24 12:37:24

标签: c# xml-serialization

我定义了以下类。

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; }
}

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

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

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

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

我该怎么做?

2 个答案:

答案 0 :(得分:4)

你可以尝试:

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

答案 1 :(得分:1)

应该只是一个案例:

public class DocumentOrder {
  // ...
  [XmlAttribute]
  public string Name { get; set; }

  [XmlArrayItem("Document")]
  public List<Document> Documents { get; set; }
}

有一些good examples on MSDN on what the various XML serialization attributes do