Практическое руководство. Запись данных объекта в XML-файл (C# и Visual Basic)
В этом примере записывается объект из класса в XML-файл с помощью класса XmlSerializer.
Пример
В данном примере определяется класс с именем Book, создается экземпляр класса и используется XML-сериализация для записи экземпляра в XML-файл.
Код, схожий с этим, доступен также в качестве фрагмента кода IntelliSense. В диспетчере фрагментов кода он находится в XML. Для получения дополнительной информации см. Фрагменты кода.
Public Module XMLWrite
Sub Main()
WriteXML()
End Sub
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
End Module
public class XMLWrite
{
static void Main(string[] args)
{
WriteXML();
}
public class Book
{
public String title;
}
public static void WriteXML()
{
Book overview = new Book();
overview.title = "Serialization Overview";
System.Xml.Serialization.XmlSerializer writer =
new System.Xml.Serialization.XmlSerializer(typeof(Book));
var path = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + "//SerializationOverview.xml";
System.IO.FileStream file = System.IO.File.Create(path);
writer.Serialize(file, overview);
file.Close();
}
}
Компиляция кода
У класса должен быть открытый конструктор без параметров.
Отказоустойчивость
При следующих условиях возможно возникновение исключения.
В сериализованном классе нет открытого конструктора без параметров.
Файл существует и является файлом только для чтения (IOException).
Путь слишком длинный (PathTooLongException).
Диск переполнен (IOException).
Безопасность
Если такого файла не существует, этот пример создает новый файл. Если приложению требуется создать файл, оно должно иметь доступ к каталогу для создания файлов (Create). Если файл уже существует, то приложению достаточно иметь лишь доступ для записи файлов (Write), т. е. меньшие привилегии. Безопаснее создавать файл во время развертывания, если это возможно, а также предоставлять доступ Read к отдельному файлу вместо доступа Create к каталогу.
См. также
Задачи
Практическое руководство. Чтение данных объекта из XML-файла (C# и Visual Basic)