Ich habe eine Klasse in .NET, die IXmlSerializable implementiert. Ich möchte seine Eigenschaften serialisieren, aber sie können komplexe Typen sein. Diese komplexen Typen sind mit der XML-Serialisierung kompatibel, implementieren IXmlSerializable jedoch nicht selbst. Wie lade ich von meinen ReadXml- und WriteXml-Methoden die Standard-Lese-/Schreiblogik für den XmlReader/XmlWriter, der an mich übergeben wird.Verwendung der XML-Standardserialisierung aus benutzerdefinierten XML-Serialisierungsmethoden
Vielleicht Code macht es klarer, was ich will:
public class MySpecialClass : IXmlSerializable
{
public List<MyXmlSerializableType> MyList { get; set; }
System.Xml.Schema.XmlSchema IXmlSerializable.GetSchema()
{
return null;
}
void IXmlSerializable.ReadXml(System.Xml.XmlReader reader)
{
// Read MyList from reader, but how?
// Something like this?
// MyList = (List<MyXmlSerializableType>)
reader.ReadObject(typeof(List<MyXmlSerializableType>));
}
void IXmlSerializable.WriteXml(System.Xml.XmlWriter writer)
{
// Write MyList to writer, but how?
// Something like this?
// writer.WriteObject(MyList)
}
}
Daniel, hast du mehr Fragen dazu? Ich denke, du hast die Antwort bekommen. –
Die ReadSubtree-Methode war der Schlüssel zur Lösung des Problems. Ich habe die aktuelle Antwort nicht als akzeptiert markiert, weil sie nicht genau erklärt, wie dies zu tun ist. –