Använda Visual C# för att serialisera ett objekt till XML

Den här artikeln innehåller en metod för att serialisera 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 kunskap om XML
  • Allmän kunskap om 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 dessa steg för att skapa ett konsolprogram som skapar ett objekt och serialiserar sedan dess tillstånd till XML:

  1. Skapa ett nytt konsolprogramprojekt i Visual C#.

  2. projektmenyn väljer du Lägg till klass för att lägga till en ny klass i projektet.

  3. I dialogrutan Lägg till nytt objekt ändrar du namnet på klassen till clsPerson.

  4. Välj Lägg till. En ny klass skapas.

  5. Lägg till följande kod efter den offentliga klass-instruktionen clsPerson .

    public string FirstName;
    public string MI;
    public string LastName;
    
  6. Växla till kodfönstret för Program.cs i Visual Studio.

  7. void Main I metoden deklarerar och skapar du en instans av clsPerson klassen:

    clsPerson p = new clsPerson();
    
  8. Ange objektets clsPerson egenskaper:

    p.FirstName = "Jeff";
    p.MI = "A";
    p.LastName = "Price";
    
  9. Namnområdet Xml.Serialization innehåller en XmlSerializer klass som serialiserar ett objekt till XML. När du skapar en instans av XmlSerializerskickar du den typ av klass som du vill serialisera till konstruktorn:

    System.Xml.Serialization.XmlSerializer x = new System.Xml.Serialization.XmlSerializer(p.GetType());
    
  10. Metoden Serialize används för att serialisera ett objekt till XML. Serialisera är överbelastad och kan skicka utdata till ett TextWriter- Streameller XMLWriter -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();
    }
}

Kontroll

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ökning

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.