Wie ändere ich den Namen des Root-Elements, während ich den Inhalt mit XmlSerializer behalte?

7

Ich habe ein XML-Dokument:

%Vor%

Ich muss zu einem Objekt deserialisieren, das zu einem anderen Stammnamen serialisiert, wobei alles andere gleich bleibt.

Zum Beispiel:

%Vor%

Beim Serialisieren können wir XmlRootAttribute immer auf einen anderen Root-Namen serialisieren, aber ich bin mir nicht sicher, wie die Deserialisierung auf einen anderen XmlRootAttribute erfolgen soll. Es wird weiterhin fehlgeschlagen error in document (1,2) zeigt auf das Root-Attribut.

Wie kann ich das erreichen?

    
G33kKahuna 21.09.2009, 20:19
quelle

6 Antworten

9

XmlRootAttribute sollte funktionieren

%Vor%

BEARBEITEN: Beende das XML

    
mkato 21.09.2009 20:25
quelle
7

Wenn nur der Stammname geändert werden soll, können Sie beim Deklarieren von XmlSerializer das root-Attribut angeben.

%Vor%     
Aaron 01.03.2016 11:46
quelle
4

Haben Sie versucht, die Klasse XmlAttributeOverrides zu verwenden?

    
Hasani Blackwell 21.09.2009 20:34
quelle
4

ein Beispiel für die Verwendung von XmlAttributeOverrides. Wenn Sie wählen, geben Sie auch hjb417

ein %Vor%     
Matthew Whited 21.09.2009 20:51
quelle
0

Sie müssen ISerializable implementieren und das Stammelement ändern in GetObjectData ().

    
jrummell 21.09.2009 20:29
quelle
0

Sie können ExtendedXmlSerializer verwenden. Diese Serializer-Unterstützung ändert den Namen des Stammelements und den Namen der Eigenschaft. Wenn Sie eine Klasse wie diese haben:

%Vor%

Sie können es serialisieren:

%Vor%

Ihre XML wird wie folgt aussehen:

%Vor%

ExtendedXmlSerializer hat viele andere nützliche Funktionen:

  • Deserialisierung xml vom Standard XMLSerializer
  • Serialisierungsklasse mit Eigenschaftenschnittstelle
  • Serialisierungs-Zirkelverweis und Referenz-ID
  • Deserialisierung der alten Version von XML
  • Eigenschaft encryption
  • Benutzerdefinierter Serializer

Der ExtendedXmlSerializer unterstützt .net 4.5 und .net Core. Sie können es mit WebApi und AspCore integrieren.

    
Wojtpl2 15.11.2016 12:42
quelle

Tags und Links