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#.
Ursprüngliche Produktversion: Visual Studio
Ursprüngliche KB-Nummer: 815813
Zusammenfassung
Die in diesem Artikel beschriebene Methode eignet sich zum Beibehalten des Zustands eines Objekts. Die Methode eignet sich auch zum Klonen eines Objekts, indem die XML-Datei wieder auf ein neues Objekt zurückgesetzt wird.
Dieser Artikel bezieht sich auf die folgenden Namespaces der Microsoft .NET Framework-Klassenbibliothek:
System.XmlSystem.Xml.Serialization
Anforderungen
In diesem Artikel wird davon ausgegangen, dass Sie mit den folgenden Themen vertraut sind:
- Visual Studio
- Allgemeine Kenntnisse mit XML
- Allgemeine Vertrautheit mit Visual C #
XML-Serialisierung
Serialisierung ist der Prozess, bei dem der Zustand eines Objekts in irgendeiner Weise beibehalten wird. Die .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 serialisieren Sie dann den Zustand in XML:
Erstellen Sie in Visual C# ein neues Konsolenanwendungsprojekt.
Wählen Sie im Menü Project 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".
Klicken Sie auf Hinzufügen. Eine neue Klasse wird erstellt.
Fügen Sie den folgenden Code nach der öffentlichen Klassensanweisung
clsPersonhinzu.public string FirstName; public string MI; public string LastName;Wechseln Sie in Visual Studio zum Codefenster für "Program.cs".
Deklarieren und erstellen Sie in der
void MainMethode eine Instanz derclsPersonKlasse:clsPerson p = new clsPerson();Legen Sie die Eigenschaften des Objekts
clsPersonfest:p.FirstName = "Jeff"; p.MI = "A"; p.LastName = "Price";Der
Xml.SerializationNamespace enthält eineXmlSerializerKlasse, die ein Objekt in XML serialisiert. Wenn Sie eine Instanz vonXmlSerializererstellen, übergeben Sie den Typ der Klasse, die Sie serialisieren möchten, an den Konstruktor:System.Xml.Serialization.XmlSerializer x = new System.Xml.Serialization.XmlSerializer(p.GetType());Die
SerializeMethode wird verwendet, um ein Objekt in XML zu serialisieren. Serialisieren ist überladen und kann Eine Ausgabe an ein ObjektStreamoderXMLWritereinTextWriterObjekt senden. In diesem Beispiel senden Sie die Ausgabe an die Konsole:x.Serialize(Console.Out,p); Console.WriteLine(); Console.ReadLine();
Vollständige Codeauflistung
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 Das Projekt funktioniert, drücken Sie STRG+F5, um das Projekt auszuführen. Ein clsPerson Objekt wird erstellt und mit den 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 die tiefe Serialisierung verwenden.