.Net Xml反序列化

时间:2010-10-05 17:20:09

标签: .net xml-deserialization

我有以下XElement

  <Issue Type="Duplicate" Distance="1">
    <Record>
      <ID>6832</ID>
      <Name_First>JAMES </Name_First>
      <Name_Last>SMITH</Name_Last>
      <Company>SMITH CO.</Company>
    </Record>
    <Record>
      <ID>6831</ID>
      <Name_First>JAMES</Name_First>
      <Name_Last>SMITH</Name_Last>
      <Company>SMITH CO.</Company>
    </Record>
  </Issue>

我正在尝试将其反序列化为此对象

public class Issue
{
    [XmlAttribute]
    public string Type { get; set; }

    [XmlArrayItem(typeof(XElement), ElementName = "Record")]
    public List<XElement> Record { get; set; }
}

该类型没有问题,但我无法将两个Record节点放入对象的Record列表中。

是否可以不覆盖ISerializable并编写自定义代码?

2 个答案:

答案 0 :(得分:2)

试试这个:

public class Issue 
{
    [XmlAttribute]
    public string Type { get; set; }

    [XmlAnyElement("Record")]
    public List<XElement> Record { get; set; }
}

我认为这告诉序列化器多个Record元素将出现在列表中。

答案 1 :(得分:1)

实现具有ID,Name_First,Name_Last和Company字段

的Record类