Serialisieren eines Objekts zu XML in C#
In diesem Lernprogramm wird erläutert, wie Sie ein Klassenobjekt in eine XML-Datei oder eine XML-Zeichenkette in C# serialisieren.
Objekt in XML serialisieren Mit der Klasse XmlSerializer
in C#
Serialisieren bedeutet, Klassenobjekte in XML oder Binärformat zu konvertieren. Die Klasse XmlSerializer
konvertiert Klassenobjekte in XML und umgekehrt in C#. Die Methode XmlSerializer.Serialize()
konvertiert alle öffentlichen Felder und Eigenschaften eines Klassenobjekts in das XML-Format. Wir müssen unsere Klasse mit dem Zugriffsspezifizierer public
definieren, wenn wir sie in eine XML-Datei oder eine XML-Zeichenkette schreiben möchten. Das folgende Codebeispiel zeigt, wie ein Klassenobjekt mit der Klasse XmlSerializer
in C# in eine XML-Zeichenkettenvariable serialisiert wird.
using System;
using System.IO;
using System.Linq;
using System.Xml;
using System.Xml.Serialization;
namespace serialize_object {
public class Sample {
public string value { get; set; }
}
class Program {
static void Main(string[] args) {
Sample obj = new Sample();
obj.value = "this is some value";
string xml = "";
XmlSerializer serializer = new XmlSerializer(typeof(Sample));
using (var sww = new StringWriter()) {
using (XmlWriter writer = XmlWriter.Create(sww)) {
serializer.Serialize(writer, obj);
xml = sww.ToString(); // Your XML
}
}
Console.WriteLine(xml);
}
}
}
Ausgabe:
<?xml version="1.0" encoding="utf-16"?><Sample xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="https://www.w3.org/2001/XMLSchema"><value>this is some value</value></Sample>
Im obigen Code haben wir das Objekt obj
der Klasse Sample
mit der Funktion XmlSerializer.Serialize()
in C# in eine XML-Stringvariable xml
serialisiert. Wir haben zuerst eine Instanz der Klasse XmlSerializer
initialisiert, indem wir den Parameter typeof(Sample)
übergeben haben. Dadurch wird eine Instanz der Klasse XmlSerializer
vom Typ Sample
erstellt. Anschließend haben wir eine Instanz der Klasse StringWriter
erstellt, um Daten in eine Zeichenkettenvariable zu schreiben. Anschließend haben wir eine Instanz der Klasse XmlWriter
erstellt, um in die Instanz der Klasse StringWriter
zu schreiben. Anschließend haben wir das Objekt mit serializer.Serialize(writer, obj)
in die Instanz der Klasse StringWriter
geschrieben und das Ergebnis mit der Funktion ToString()
in der Stringvariablen xml
gespeichert.
Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.
LinkedIn