Wie ändere ich die root-element-Namen, während der Inhalt mit XmlSerializer?
Ich habe ein XML-Dokument:
<data>
<elmt1>Element 1</elmt1>
<elmnt2>Element 2</elmnt2>
<elmnt3>Element 3</elmnt3>
</data>
Muss ich deserialisiert ein Objekt, das serialisiert, an einen anderen root-name-alles andere bleibt dabei der gleiche.
Beispiel:
<dataNew>
<elmt1>Element 1</elmt1>
<elmnt2>Element 2</elmnt2>
<elmnt3>Element 3</elmnt3>
</dataNew>
Beim serialisieren, können wir immer anwenden XmlRootAttribute
serialisiert, an einen anderen root-name -, aber ich bin nicht sicher, wie Sie Sie zu Deserialisieren zu einem anderen XmlRootAttribute
. Es hält andernfalls error in document (1,2)
zeigt auf das root-Attribut.
Wie kann ich das erreichen?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn es nur den root-Namen, den Sie ändern möchten, Sie können das root-Attribut bei der Deklaration der XmlSerializer.
XmlRootAttribute arbeiten sollte,
BEARBEITEN: Beendet die XML -
Haben Sie versucht, mit der XmlAttributeOverrides Klasse?
einer Stichprobe von über XmlAttributeOverrides. Wenn Sie Stimmen geben, die eine zu hjb417 sowie
Haben Sie vielleicht zu implementieren ISerializable und ändern Sie das root-element in GetObjectData().
Können Sie ExtendedXmlSerializer. Dieser serializer-Unterstützung change-root-element-Namen und den Namen der Eigenschaft.
Wenn Sie Klasse haben, wie diese:
Können Sie serialisieren:
Dein xml so Aussehen:
ExtendedXmlSerializer hat viele andere nützliche Funktionen:
ExtendedXmlSerializer unterstützt .net 4.5 und .net Core. Integrieren Sie es mit WebApi und AspCore.