对象列表序列化问题

本文关键字:问题 序列化 列表 对象 | 更新日期: 2023-09-27 18:01:52

我在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对象。在这个对象中是一个Reference对象,它带有变量名和列表DataList。问题来了=>列表中的数据对象有一个变量id,但数据值总是为0。

我该如何处理?

With best regards.

高峰

对象列表序列化问题

将属性更改为XmlText:

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