Einfachere Möglichkeit, die C # -Klasse als XML-Text zu serialisieren

8

Beim Versuch, eine andere Frage zu beantworten, habe ich ein C # -Objekt zu einer XML-Zeichenfolge serialisiert. Es war überraschend schwer; Das war der kürzeste Codeausschnitt, den ich mir vorstellen konnte:

%Vor%

Das Ergebnis ist in Ordnung:

%Vor%

Aber das Snippet ist komplizierter als ich denke, es sollte sein. Ich kann nicht glauben, dass Sie Kodierung und MemoryStream für diese einfache Aufgabe kennen müssen.

Gibt es eine kürzere Möglichkeit, ein Objekt in eine XML-Zeichenfolge zu serialisieren?

    
Andomar 15.11.2009, 19:26
quelle

3 Antworten

19

Etwas kürzer: -)

%Vor%

Obwohl es einen Fehler bei diesem früheren Ansatz gibt, ist es wert, darauf hingewiesen zu werden. Es erzeugt einen Header utf-16 , da wir StringWriter verwenden, so dass dies nicht der Fall ist entspricht genau Ihrem Code. Um utf-8 header zu erhalten, sollten wir einen MemoryStream und einen XmlWriter , was eine zusätzliche Codezeile ist:

%Vor%     
Darin Dimitrov 15.11.2009, 19:33
quelle
0

Schreiben Sie eine Erweiterungsmethode oder eine Wrapper-Klasse / -Funktion, um das Snippet zu kapseln.

    
Uwe Keim 15.11.2009 19:30
quelle
0

Sie brauchen nicht das MemoryStream , verwenden Sie einfach ein StringWriter :

%Vor%     
Thomas Levesque 15.11.2009 19:33
quelle

Tags und Links