Практическое руководство. Чтение данных объекта из XML-файла (C# и Visual Basic)
В этом примере производится чтение данных объекта, которые были предварительно записаны в XML-файл с помощью класса XmlSerializer.
Пример
Данный пример кода доступен также в качестве фрагмента кода IntelliSense. В выборе фрагментов кода он находится в XML. Дополнительные сведения см. в разделе Фрагменты кода.
Public Class Book
Public Title As String
End Class
Public Sub ReadXML()
Dim reader As New System.Xml.Serialization.XmlSerializer(GetType(Book))
Dim file As New System.IO.StreamReader(
"c:\temp\SerializationOverview.xml")
Dim overview As Book
overview = CType(reader.Deserialize(file), Book)
Console.WriteLine(overview.Title)
End Sub
public class Book
{
public String title;
}
public void ReadXML()
{
// First write something so that there is something to read ...
var b = new Book { title = "Serialization Overview" };
var writer = new System.Xml.Serialization.XmlSerializer(typeof(Book));
var wfile = new System.IO.StreamWriter(@"c:\temp\SerializationOverview.xml");
writer.Serialize(wfile, b);
wfile.Close();
// Now we can read the serialized book ...
System.Xml.Serialization.XmlSerializer reader =
new System.Xml.Serialization.XmlSerializer(typeof(Book));
System.IO.StreamReader file = new System.IO.StreamReader(
@"c:\temp\SerializationOverview.xml");
Book overview = (Book)reader.Deserialize(file);
file.Close();
Console.WriteLine(overview.title);
}
Компиляция кода
Следует заменить имя файла "c:\IntroToVB.xml" на имя файла, в котором содержатся сериализованные данные. Дополнительные сведения о сериализации данных см. в разделе Практическое руководство. Запись данных объекта в XML-файл (C# и Visual Basic).
У класса должен быть открытый конструктор без параметров.
Десериализуются только общие свойства и поля.
Отказоустойчивость
При следующих условиях возможно возникновение исключения.
В сериализованном классе нет открытого конструктора без параметров.
Данные в файле не являются данными из класса, который был десериализован.
Файл не существует (IOException).
Безопасность
Всегда следует проверять входные данные и никогда не стоит десериализовывать данные из непроверенных источников. Созданный заново объект выполняется на локальном компьютере с разрешениями кода, который его десериализовал. Следует проверять все входные данные перед использованием их в приложении.
См. также
Задачи
Практическое руководство. Запись данных объекта в XML-файл (C# и Visual Basic)
Ссылки
Основные понятия
Руководство по программированию на C#