Använda Visual C# för att serialisera ett objekt till XML
Den här artikeln innehåller en metod för hur du serialiserar ett objekt till XML (Extensible Markup Language) med hjälp av Visual C#.
Ursprunglig produktversion: Visual Studio
Ursprungligt KB-nummer: 815813
Sammanfattning
Metoden som beskrivs i den här artikeln är användbar för att bevara tillståndet för ett objekt. Metoden är också användbar för att klona ett objekt genom att av-serialisera XML tillbaka till ett nytt objekt.
Den här artikeln refererar till följande namnområden för Microsoft .NET Framework-klassbibliotek:
System.Xml
System.Xml.Serialization
Krav
Den här artikeln förutsätter att du är bekant med följande ämnen:
- Visual Studio
- Allmän förtrogenhet med XML
- Allmän förtrogenhet med Visual C#
XML-serialisering
Serialisering är processen att ta tillståndet för ett objekt och bevara det på något sätt. .NET Framework innehåller kraftfulla objekt som kan serialisera alla objekt till XML. Namnområdet System.Xml.Serialization
tillhandahåller den här funktionen.
Följ de här stegen för att skapa ett konsolprogram som skapar ett objekt och sedan serialiserar dess tillstånd till XML:
Skapa ett nytt konsolprogramprojekt i Visual C#.
På projektmenyn väljer du Lägg till klass för att lägga till en ny klass i projektet.
I dialogrutan Lägg till nytt objekt ändrar du namnet på klassen till clsPerson.
Markera Lägga till. En ny klass skapas.
Lägg till följande kod efter den offentliga klass-instruktionen
clsPerson
.public string FirstName; public string MI; public string LastName;
Växla till kodfönstret för Program.cs i Visual Studio.
void Main
Deklarera och skapa en instans avclsPerson
klassen i -metoden:clsPerson p = new clsPerson();
Ange objektets
clsPerson
egenskaper:p.FirstName = "Jeff"; p.MI = "A"; p.LastName = "Price";
Namnområdet
Xml.Serialization
innehåller enXmlSerializer
klass som serialiserar ett objekt till XML. När du skapar en instans avXmlSerializer
skickar du den typ av klass som du vill serialisera till konstruktorn:System.Xml.Serialization.XmlSerializer x = new System.Xml.Serialization.XmlSerializer(p.GetType());
Metoden
Serialize
används för att serialisera ett objekt till XML. Serialisera är överbelastad och kan skicka utdata till ettTextWriter
,Stream
ellerXMLWriter
-objekt. I det här exemplet skickar du utdata till konsolen:x.Serialize(Console.Out,p); Console.WriteLine(); Console.ReadLine();
Fullständig kodlista
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();
}
}
Verifiering
Kontrollera att projektet fungerar genom att trycka på CTRL+F5 för att köra projektet. Ett clsPerson
objekt skapas och fylls i med de värden som du har angett. Det här tillståndet serialiseras till XML. Konsolfönstret visar följande kod:
<?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>
Felsöka
Objektet Xml.Serialization.XmlSerializer
utför endast ytlig serialisering. Om du också vill serialisera de privata variablerna för ett objekt eller underordnade objekt måste du använda djup serialisering.