Serialisieren eines Objekts zu XML in C#

Muhammad Maisam Abbas 16 Februar 2024
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.

Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

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

Verwandter Artikel - Csharp XML

Verwandter Artikel - Csharp Object