tengo un archivo XML buscando algo como esto:La implementación IXmlSerializable en un objeto de colección
<xml>
<A>value</A>
<B>value</B>
<listitems>
<item>
<C>value</C>
<D>value</D>
</item>
</listitems>
</xml>
y tengo un dos objetos que representan esta 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);
}
}
utilizo el XmlSerializer para serializar/deserializar el XmlObject al archivo.
El problema es que cuando implementé las funciones IXmlSerializable personalizadas en mi elemento "subobjeto", siempre obtengo un elemento (el primero) en mi colección XmlObject.listitems al deserializar el archivo. Si elimino el: IXmlSerializable todo funciona como se esperaba.
¿Qué hago mal?
Editar: He implementado IXmlSerializable.GetSchema y necesito usar IXmlSerializable en mi "objeto hijo" para hacer alguna transformación de valor personalizado.
Muchas gracias. –