2011-07-13 85 views
0

我有一个非常具体的问题,将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对象。出现问题=>列表中的Data对象具有变量ID,但DataValue始终为0.

如何处理此问题?

祝好。

斯派克

+0

您在使用XmlSerializer的或如何序列化/反序列化对象? – sll

+0

我使用xmlserializer是的,Reniuz解决了我的问题 – Spike

回答

0

只是改变属性XMLTEXT:

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

Thx为快速的答案。 @Reniuz:thx我完全忘记它可以是一种文本类型。通常它不会造成问题。最好的祝福。 – Spike