Практическое руководство. Запись данных объекта в XML-файл (C# и Visual Basic)
В этом примере записывается объект из класса в XML-файл с помощью класса XmlSerializer.
Пример
В данном примере определяется класс с именем Book, создается экземпляр класса и используется XML-сериализация для записи экземпляра в XML-файл.
Код, схожий с этим, доступен также в качестве фрагмента кода IntelliSense. В выборе фрагментов кода он находится в XML. Дополнительные сведения см. в разделе Практическое руководство. Вставка фрагментов кода IntelliSense.
Public Class Book
Public Title As String
End Class
Public Sub WriteXML()
Dim overview As New Book
overview.Title = "Serialization Overview"
Dim writer As New System.Xml.Serialization.XmlSerializer(GetType(Book))
Dim file As New System.IO.StreamWriter(
"c:\temp\SerializationOverview.xml")
writer.Serialize(file, overview)
file.Close()
End Sub
public class Book
{
public String title;
}
public void WriteXML()
{
Book overview = new Book();
overview.title = "Serialization Overview";
System.Xml.Serialization.XmlSerializer writer =
new System.Xml.Serialization.XmlSerializer(typeof(Book));
System.IO.StreamWriter file = new System.IO.StreamWriter(
@"c:\temp\SerializationOverview.xml");
writer.Serialize(file, overview);
file.Close();
}
Компиляция кода
Класс должен включать открытый конструктор без параметров.
Отказоустойчивость
Исключение может возникнуть при следующих условиях.
В сериализованном классе нет открытого конструктора без параметров.
Файл существует и является файлом только для чтения (IOException).
Путь слишком длинный (PathTooLongException).
Диск переполнен (IOException).
Безопасность
Если такого файла не существует, этот пример создает новый файл. Если приложению требуется создать файл, оно должно иметь доступ к каталогу для создания файлов (Create). Если файл уже существует, то приложению достаточно иметь лишь доступ для записи файлов (Write), т. е. меньшие привилегии. Безопаснее создавать файл во время развертывания, если это возможно, а также предоставлять доступ Read к отдельному файлу вместо доступа Create к каталогу.
См. также
Задачи
Практическое руководство. Чтение данных объекта из XML-файла (C# и Visual Basic)