Verwenden von Visual C# zum Serialisieren eines Objekts in XML
Dieser Artikel enthält eine Methode zum Serialisieren eines Objekts in Extensible Markup Language (XML) mithilfe von Visual C#.
Originalproduktversion: Visual Studio
Ursprüngliche KB-Nummer: 815813
Zusammenfassung
Die in diesem Artikel beschriebene Methode ist nützlich, um den Status eines Objekts beizubehalten. Die Methode ist auch nützlich, um ein Objekt zu klonen, indem der XML-Code wieder in ein neues Objekt serialisiert wird.
Dieser Artikel bezieht sich auf die folgenden Microsoft .NET Framework-Klassenbibliotheksnamespaces:
System.Xml
System.Xml.Serialization
Anforderungen
In diesem Artikel wird davon ausgegangen, dass Sie mit den folgenden Themen vertraut sind:
- Visual Studio
- Allgemeine Kenntnisse mit XML
- Allgemeine Kenntnisse mit Visual C#
XML-Serialisierung
Serialisierung ist der Vorgang, den Zustand eines Objekts zu übernehmen und in irgendeiner Weise beizubehalten. Das .NET Framework enthält leistungsstarke Objekte, die jedes Objekt in XML serialisieren können. Der System.Xml.Serialization
Namespace stellt diese Funktion bereit.
Führen Sie die folgenden Schritte aus, um eine Konsolenanwendung zu erstellen, die ein Objekt erstellt, und serialisiert dann den Status in XML:
Erstellen Sie in Visual C# ein neues Konsolenanwendungsprojekt.
Wählen Sie im Menü "Projekt " die Option "Klasse hinzufügen" aus, um dem Projekt eine neue Klasse hinzuzufügen.
Ändern Sie im Dialogfeld "Neues Element hinzufügen" den Namen der Klasse in "clsPerson".
Wählen Sie Hinzufügen. Es wird eine neue Klasse erstellt.
Fügen Sie den folgenden Code nach der öffentlichen Klassensanweisung
clsPerson
hinzu.public string FirstName; public string MI; public string LastName;
Wechseln Sie zum Codefenster für Program.cs in Visual Studio.
Deklarieren und erstellen Sie in der
void Main
Methode eine Instanz derclsPerson
Klasse:clsPerson p = new clsPerson();
Legen Sie die Eigenschaften des
clsPerson
Objekts fest:p.FirstName = "Jeff"; p.MI = "A"; p.LastName = "Price";
Der
Xml.Serialization
Namespace enthält eineXmlSerializer
Klasse, die ein Objekt in XML serialisiert. Wenn Sie eine Instanz erstellenXmlSerializer
, übergeben Sie den Typ der Klasse, die Sie in den Konstruktor serialisieren möchten:System.Xml.Serialization.XmlSerializer x = new System.Xml.Serialization.XmlSerializer(p.GetType());
Die
Serialize
Methode wird verwendet, um ein Objekt in XML zu serialisieren. Serialisierung ist überladen und kann die Ausgabe an einTextWriter
,Stream
oderXMLWriter
Objekt senden. In diesem Beispiel senden Sie die Ausgabe an die Konsole:x.Serialize(Console.Out,p); Console.WriteLine(); Console.ReadLine();
Vollständige Codeliste
using System;
public class clsPerson
{
public string FirstName;
public string MI;
public string LastName;
}
class class1
{
static void Main(string[] args)
{
clsPerson p=new clsPerson();
p.FirstName = "Jeff";
p.MI = "A";
p.LastName = "Price";
System.Xml.Serialization.XmlSerializer x = new System.Xml.Serialization.XmlSerializer(p.GetType());
x.Serialize(Console.Out, p);
Console.WriteLine();
Console.ReadLine();
}
}
Überprüfung
Um zu überprüfen, ob Ihr Projekt funktioniert, drücken Sie STRG+F5, um das Projekt auszuführen. Ein clsPerson
Objekt wird erstellt und mit den von Ihnen eingegebenen Werten aufgefüllt. Dieser Zustand wird in XML serialisiert. Das Konsolenfenster zeigt den folgenden Code:
<?xml version="1.0" encoding="IBM437"?>
<clsPerson xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<FirstName>Jeff</FirstName>
<MI>A</MI>
<LastName>Price</LastName>
</clsPerson>
Problembehandlung
Das Xml.Serialization.XmlSerializer
Objekt führt nur eine flache Serialisierung durch. Wenn Sie auch die privaten Variablen eines Objekts oder untergeordneter Objekte serialisieren möchten, müssen Sie eine tiefe Serialisierung verwenden.