У меня есть файл XML смотрит несколько как это:Реализация IXmlSerializable на объекте коллекции
<xml>
<A>value</A>
<B>value</B>
<listitems>
<item>
<C>value</C>
<D>value</D>
</item>
</listitems>
</xml>
и у меня есть два объекта, представляющие этот XML:
class XmlObject
{
public string A { get; set; }
public string B { get; set; }
List<Item> listitems { get; set; }
}
class Item : IXmlSerializable
{
public string C { get; set; }
public string D { get; set; }
//Implemented IXmlSerializeable read/write
public void ReadXml(System.Xml.XmlReader reader)
{
this.C = reader.ReadElementString();
this.D = reader.ReadElementString();
}
public void WriteXml(System.Xml.XmlWriter writer)
{
writer.WriteElementString("C", this.C);
writer.WriteElementString("D", this.D);
}
}
я использую XmlSerializer для сериализации/десериализуйте XmlObject в файл.
Проблема заключается в том, что когда я реализовал пользовательские функции IXmlSerializable на моем элементе «под-объект», я всегда получаю только один элемент (первый) в моей коллекции XmlObject.listitems при десериализации файла. Если я удалю: IXmlSerializable, все работает так, как ожидалось.
Что делать неправильно?
Редактирование: У меня была реализована IXmlSerializable.GetSchema, и мне нужно использовать IXmlSerializable для моего «дочернего объекта» для выполнения определенного пользовательского преобразования значений.
Большое вам спасибо. –