Serializowanie obiektu do kodu XML przy użyciu języka Visual C#
W tym artykule przedstawiono metodę serializacji obiektu do języka XML (Extensible Markup Language) 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 ta jest również przydatna do klonowania obiektu przez cofnięcie serializacji kodu XML z powrotem do nowego obiektu.
W tym artykule opisano następujące przestrzenie nazw biblioteki klas 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 pobierania stanu obiektu i utrwalania go w jakiś sposób. .NET Framework zawiera zaawansowane obiekty, które mogą serializować dowolny obiekt do kodu XML. Przestrzeń System.Xml.Serialization
nazw zapewnia tę możliwość.
Wykonaj następujące kroki, aby utworzyć aplikację konsolową, która tworzy obiekt, a następnie serializuje jego stan na xml:
W języku Visual C# utwórz nowy projekt aplikacji konsoli.
W menu Projekt wybierz pozycję Dodaj klasę , aby dodać nową klasę do projektu.
W oknie dialogowym Dodawanie nowego elementu zmień nazwę klasy na clsPerson.
Wybierz opcję 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 obiektu
clsPerson
:p.FirstName = "Jeff"; p.MI = "A"; p.LastName = "Price";
Przestrzeń
Xml.Serialization
nazw zawiera klasęXmlSerializer
, która serializuje obiekt do formatu XML. Podczas tworzenia wystąpienia elementuXmlSerializer
przekazujesz typ klasy, którą chcesz serializować do jej konstruktora:System.Xml.Serialization.XmlSerializer x = new System.Xml.Serialization.XmlSerializer(p.GetType());
Metoda
Serialize
służy do serializacji obiektu do kodu XML. Serializacja jest przeciążona i może wysyłać dane wyjściowe do obiektuTextWriter
,Stream
lubXMLWriter
. W tym przykładzie wysyłasz dane wyjściowe do konsoli:x.Serialize(Console.Out,p); Console.WriteLine(); Console.ReadLine();
Ukończ listę 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();
}
}
Weryfikacji
Aby sprawdzić, czy projekt działa, naciśnij klawisze CTRL+F5, aby uruchomić projekt. Obiekt clsPerson
jest tworzony i wypełniany wprowadzonymi wartościami. Ten stan jest serializowany do xml. W oknie konsoli jest wyświetlany 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łytką serializację. Jeśli chcesz również serializować zmienne prywatne obiektu lub obiektów podrzędnych, musisz użyć serializacji głębokiej.