Реализация IXmlSerializable на объекте коллекции
У меня есть XML-файл, который выглядит примерно так:
<a>value</a>
value
value
value
И у меня есть два объекта, представляющих этот XML:
class XmlObject
{
public string A { get; set; }
public string B { get; set; }
List 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 на моем "ребенок-объект» для выполнения некоторых пользовательских преобразований значений.