对象列表序列化问题

时间:2011-07-13 12:13:44

标签: c# xml-serialization

我有一个非常具体的问题,即将xml文件映射到对象。

这是XML示例文件:

<spyce>
   <reference name="test">
      <Data id="1">10</Data>
      <Data id="2">20</Data>
   </reference>
</Spyce>

以下是我的映射类:

[Serializable]
[XmlRoot("spyce")]
public class Spyce
{
    private Reference reference;
    [XmlElement("reference")]
    public Reference Reference
    {
        get { return reference; }
        set { reference = value; }
    }
}

[XmlRoot("reference")]
public class Reference
{
    [XmlAttribute("name")]
    public string name;

    [XmlArray]
    private List<Data> dataList;
    [XmlElement("data")]
    public List<Data> DataList
    {
        get { return dataList; }
        set { dataList = value; }
    }
}

public class Data
{
    [XmlAttribute("id")]
    public string id;

    private int dataValue;
    [XmlElement("data")]
    public int DataValue
    {
        get { return dataValue; }
        set { dataValue= value; }
    }
}

序列化顺利,我得到一个Spyce对象。在此对象中是具有变量名称和列表DataList的Reference对象。这就是问题=&gt;列表中的Data对象具有变量id,但DataValue始终为0。

我该如何处理?

最诚挚的问候。

1 个答案:

答案 0 :(得分:0)

只需将属性更改为XmlText:

[XmlText(Type=typeof(int))]
public int DataValue