Проблема сериализации списка объектов - PullRequest
0 голосов
/ 13 июля 2011

У меня очень специфическая проблема с отображением файла 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, но DataValue всегда стоит 0.

Как я могу справиться с этим?

С наилучшими пожеланиями.

Spike

1 Ответ

0 голосов
/ 13 июля 2011

Просто измените атрибут на XmlText:

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