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:
W programie Visual C# utwórz nowy projekt aplikacja konsolowa.
W menu Project (Projekt) wybierz pozycję Add Class (Dodaj klasę), aby dodać nową klasę do projektu.
W oknie dialogowym Dodawanie nowego elementu zmień nazwę klasy na clsPerson.
Wybierz Dodaj. Zostanie utworzona nowa klasa.
Dodaj następujący kod po instrukcji klasy
clsPerson
publicznej.public string FirstName; public string MI; public string LastName;
Przejdź do okna kodu dla Program.cs w programie Visual Studio.
W metodzie zadeklaruj
void Main
i utwórz wystąpienieclsPerson
klasy:clsPerson p = new clsPerson();
Ustaw właściwości
clsPerson
obiektu:p.FirstName = "Jeff"; p.MI = "A"; p.LastName = "Price";
Xml.Serialization
Przestrzeń nazw zawiera klasęXmlSerializer
, która serializuje obiekt do formatu XML. Podczas tworzenia wystąpieniaXmlSerializer
klasy należy przekazać typ klasy, którą chcesz serializować do jego konstruktora:System.Xml.Serialization.XmlSerializer x = new System.Xml.Serialization.XmlSerializer(p.GetType());
Metoda
Serialize
służy do serializowania obiektu w formacie XML. Serializacja jest przeciążona i może wysyłać dane wyjściowe doTextWriter
obiektu ,Stream
lubXMLWriter
. 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.