2011-07-13 7 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オブジェクトがあります。ここで問題が発生する=>リスト内のデータオブジェクトには変数IDがありますが、DataValueは常に0になります。

これはどのように処理できますか?

よろしくお願いいたします。

スパイク

+0

あなたはのXmlSerializerを使用していますかどのようにオブジェクトをデシリアライズ/シリアライズ? – sll

+0

私はxmlserializerはいを使用しています、Reniuzは私の問題を解決しました – Spike

答えて

0

ただのXmlTextに属性を変更します。

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

速い答えのためのThx。 @ Reenuz:thx私はそれが一種のテキストtypであることを完全に忘れてしまった。ノーマリーそれは問題を起こさない。敬具。 – Spike