Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/283.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 对象列表序列化问题_C#_Xml Serialization - Fatal编程技术网

C# 对象列表序列化问题

C# 对象列表序列化问题,c#,xml-serialization,C#,Xml Serialization,我在将xml文件映射到对象时遇到了一个非常具体的问题 以下是XML示例文件: <spyce> <reference name="test"> <Data id="1">10</Data> <Data id="2">20</Data> </reference> </Spyce> 10 20 以下是我的映射类: [Serializable] [XmlRoot("s

我在将xml文件映射到对象时遇到了一个非常具体的问题

以下是XML示例文件:

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

10
20
以下是我的映射类:

[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; }
    }
}
[可序列化]
[XmlRoot(“spyce”)]
公共级间谍
{
私人参考;
[XmlElement(“参考”)]
公众参考
{
获取{return reference;}
设置{reference=value;}
}
}
[XmlRoot(“参考”)]
公开课参考
{
[XmlAttribute(“名称”)]
公共字符串名称;
[XmlArray]
私有列表数据列表;
[XmlElement(“数据”)]
公共列表数据列表
{
获取{返回数据列表;}
设置{dataList=value;}
}
}
公共类数据
{
[XmlAttribute(“id”)]
公共字符串id;
私有int数据值;
[XmlElement(“数据”)]
公共int数据值
{
获取{return dataValue;}
设置{dataValue=value;}
}
}
序列化进行得很顺利,我得到了一个Spyce对象。在此对象中是具有变量名和列表数据列表的引用对象。问题来了=>列表中的数据对象有一个变量id,但DataValue始终为0

我该怎么办

致以最良好的问候


Spike

只需将属性更改为XmlText:

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

您是在使用XmlSerializer还是如何序列化/反序列化对象?我正在使用XmlSerializer是的,Reniuz解决了我的问题,以获得快速答案@雷纽兹:thx我完全忘记了它可以是一种文本类型。正常情况下,这不会造成问题。致以最良好的问候。