Das serialisieren der Eigenschaft der Typ-Objekt mit dem XmlSerializer
Ich habe eine Eigenschaft:
public object Tag
aber es kann enthalten, begrenzte Anzahl von Arten, leider ohne base geben (außer Objekt-Typ). Aber wenn ich serialisieren Sie das Objekt mit dieser Eigenschaft, wird es nicht serialisiert. Gibt es einen Weg zu weisen XmlSerializer-mit Varianten möglich?
- Ich würde erwarten, dass Sie könnte ISerializable implementieren und kontrollieren der Serialisierung des Objekts je nach Art der Tag-durch Gießen, um es ist serialisierbar geben. Allerdings weiß ich nicht, wie würden Sie Deserialisieren das Objekt später. Es ist vielleicht nicht eine gute Idee zu serialisieren Dinge vom Typ object.
XmlSerializer
kümmert sich nicht umISerializable
; jedoch, ich bin damit einverstanden, dass ehrlich gesagt, dieses Szenario ist am besten einfach vermieden- XmlSerializer kümmert sich nicht darum, ISerialiable es ist aber nicht kümmern, IXmlSerializable und rufen Sie die read-und write-Methoden auf ein Objekt implementiert.
- Cheers, ich hatte vergessen, dass es die IXmlSerializable-für den XmlSerializer.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich nicht empfehlen, aber ja, Sie können
[XmlElement]
etc zu erzählen mehrere Kandidaten-Typen, die für ein Mitglied:Wichtigen bits der Ausgabe (ignoriert alle
xmlns
/<?xml>
etc) sind:Tat ich es mit der Umsetzung der
IXmlSerializable
interface, das schreiben der Objekt-Typ als eine element-Attribut.Hinweis: in dem code, den ich verwenden, ist kein namespace und die ASCII-Kodierung, die sind nicht zwingende Möglichkeiten.
HTH,
Cabbi
Können Sie auch
[XmlInclude(typeof(YourType))]
auf die Klasse enthält die Objekt-Eigenschaft. So im Fall des OP, würde es so AussehenDiese Weise können Sie halten Sie Ihr element name
<Tag>
in allen Fällen