Использование Visual C# для сериализации объекта в XML
В этой статье представлен метод сериализации объекта в расширяемый язык разметки (XML) с помощью Visual C#.
Исходная версия продукта: Visual Studio
Исходный номер базы знаний: 815813
Итоги
Метод, описанный в этой статье, полезен для сохранения состояния объекта. Этот метод также полезен для клонирования объекта путем отмены сериализации XML обратно в новый объект.
В этой статье рассматриваются следующие пространства имен библиотеки классов Microsoft платформа .NET Framework:
System.Xml
System.Xml.Serialization
Требования
В этой статье предполагается, что вы знакомы со следующими разделами:
- Visual Studio
- Общее знакомство с XML
- Общее знакомство с Visual C#
сериализация XML
Сериализация — это процесс принятия состояния объекта и его сохранения в некоторой форме. Платформа .NET Framework включает мощные объекты, которые могут сериализовать любой объект в XML. Пространство System.Xml.Serialization
имен предоставляет эту возможность.
Выполните следующие действия, чтобы создать консольное приложение, которое создает объект, а затем сериализует его состояние в XML:
В Visual C# создайте проект консольного приложения.
В меню "Проект" выберите "Добавить класс", чтобы добавить новый класс в проект.
В диалоговом окне "Добавление нового элемента" измените имя класса на clsPerson.
Выберите Добавить. Создается новый класс.
Добавьте следующий код после инструкции общедоступного класса
clsPerson
.public string FirstName; public string MI; public string LastName;
Перейдите в окно кода для Program.cs в Visual Studio.
В методе объявите
void Main
и создайте экземплярclsPerson
класса:clsPerson p = new clsPerson();
Задайте свойства
clsPerson
объекта:p.FirstName = "Jeff"; p.MI = "A"; p.LastName = "Price";
Пространство
Xml.Serialization
имен содержитXmlSerializer
класс, сериализующий объект в XML. При создании экземпляраXmlSerializer
передайте тип класса, который требуется сериализовать в его конструктор:System.Xml.Serialization.XmlSerializer x = new System.Xml.Serialization.XmlSerializer(p.GetType());
Метод
Serialize
используется для сериализации объекта в XML. Сериализация перегружена и может отправлять выходные данные вTextWriter
Stream
объект илиXMLWriter
объект. В этом примере выходные данные отправляются в консоль:x.Serialize(Console.Out,p); Console.WriteLine(); Console.ReadLine();
Полный листинг кода
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();
}
}
Проверка
Чтобы убедиться, что проект работает, нажмите клавиши CTRL+F5, чтобы запустить проект. Объект clsPerson
создается и заполняется введенными значениями. Это состояние сериализуется в XML. В окне консоли показан следующий код:
<?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>
Устранение неполадок
Объект Xml.Serialization.XmlSerializer
выполняет только неглубокую сериализацию. Если вы также хотите сериализовать частные переменные объекта или дочерних объектов, необходимо использовать глубокую сериализацию.