2011-07-13 121 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