5

我已经定义了以下类。

文档.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>

我怎样才能做到这一点?

4

2 回答 2

4

你可以试试 :

public class DocumentOrder {
  // ...
  [XmlAttribute]
  public string Name { get; set; }
  [XmlElement("Document")]
  public List<Document> Documents { get; set; }
}
于 2013-06-24T12:42:10.923 回答
1

应该只是以下情况:

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

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

MSDN 上有一些很好的例子,说明了各种 XML 序列化属性的作用

于 2013-06-24T12:48:44.020 回答