Udostępnij za pośrednictwem


Używanie języka Visual C# do serializacji obiektu do kodu XML

Ten artykuł zawiera metodę serializacji obiektu w języku Extensible Markup Language (XML) przy użyciu języka Visual C#.

Oryginalna wersja produktu: Visual Studio
Oryginalny numer KB: 815813

Podsumowanie

Metoda opisana w tym artykule jest przydatna do utrwalania stanu obiektu. Metoda jest również przydatna do klonowania obiektu przez dese serializowanie kodu XML z powrotem do nowego obiektu.

W tym artykule opisano następujące przestrzenie nazw biblioteki klas programu Microsoft .NET Framework:

  • System.Xml
  • System.Xml.Serialization

Wymagania

W tym artykule założono, że znasz następujące tematy:

  • Visual Studio
  • Ogólna znajomość kodu XML
  • Ogólna znajomość języka Visual C#

Serializacja XML

Serializacja to proces przyjmowania stanu obiektu i utrwalania go w jakiś sposób. Program .NET Framework zawiera zaawansowane obiekty, które mogą serializować dowolny obiekt w formacie XML. System.Xml.Serialization Przestrzeń nazw zapewnia tę możliwość.

Wykonaj następujące kroki, aby utworzyć aplikację konsolową, która tworzy obiekt, a następnie serializuje jego stan do kodu XML:

  1. W programie Visual C# utwórz nowy projekt aplikacja konsolowa.

  2. W menu Project (Projekt) wybierz pozycję Add Class (Dodaj klasę), aby dodać nową klasę do projektu.

  3. W oknie dialogowym Dodawanie nowego elementu zmień nazwę klasy na clsPerson.

  4. Wybierz Dodaj. Zostanie utworzona nowa klasa.

  5. Dodaj następujący kod po instrukcji klasy clsPerson publicznej.

    public string FirstName;
    public string MI;
    public string LastName;
    
  6. Przejdź do okna kodu dla Program.cs w programie Visual Studio.

  7. W metodzie zadeklaruj void Main i utwórz wystąpienie clsPerson klasy:

    clsPerson p = new clsPerson();
    
  8. Ustaw właściwości clsPerson obiektu:

    p.FirstName = "Jeff";
    p.MI = "A";
    p.LastName = "Price";
    
  9. Xml.Serialization Przestrzeń nazw zawiera klasęXmlSerializer, która serializuje obiekt do formatu XML. Podczas tworzenia wystąpienia XmlSerializerklasy należy przekazać typ klasy, którą chcesz serializować do jego konstruktora:

    System.Xml.Serialization.XmlSerializer x = new System.Xml.Serialization.XmlSerializer(p.GetType());
    
  10. Metoda Serialize służy do serializowania obiektu w formacie XML. Serializacja jest przeciążona i może wysyłać dane wyjściowe do TextWriterobiektu , Streamlub XMLWriter . W tym przykładzie dane wyjściowe są wysyłane do konsoli:

    x.Serialize(Console.Out,p);
    Console.WriteLine();
    Console.ReadLine();
    

Kompletna lista kodu

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();
    }
}

Weryfikacja

Aby sprawdzić, czy projekt działa, naciśnij CTRL+F5, aby uruchomić projekt. Obiekt clsPerson jest tworzony i wypełniany wartościami wprowadzonymi. Ten stan jest serializowany na XML. W oknie konsoli zostanie wyświetlony następujący 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>

Rozwiązywanie problemów

Obiekt Xml.Serialization.XmlSerializer wykonuje tylko płytkią serializacji. Jeśli chcesz również serializować prywatne zmienne obiektu lub obiektów podrzędnych, należy użyć serializacji głębokiej.