ich eine XML-Datei haben etwas wie folgt aussehen:Implementierung IXmlSerializable auf einem Sammlungsobjekt
<xml>
<A>value</A>
<B>value</B>
<listitems>
<item>
<C>value</C>
<D>value</D>
</item>
</listitems>
</xml>
und ich habe eine zwei Objekte, die diese 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);
}
}
ich die XmlSerializer verwenden, um zu Serialisierung/Deserialisieren des XmlObject in Datei.
Das Problem ist, dass, wenn ich die benutzerdefinierten IXmlSerializable-Funktionen auf meinem "Unterobjekt" -Element implementiert habe ich immer nur ein Element (das erste) in meiner XmlObject.listitems-Auflistung beim Deserialisieren der Datei. Wenn ich das entfernen: IXmlSerializable funktioniert alles wie erwartet.
Was mache ich falsch?
Edit: Ich habe IXmlSerializable.GetSchema implementiert und ich muss IXmlSerializable auf meinem "Kind-Objekt" für einige benutzerdefinierte Wert Transformation verwenden.
Vielen Dank. –