Поделиться через


Практическое руководство. Чтение данных объекта из XML-файла (C# и Visual Basic)

В этом примере производится чтение данных объекта, которые были предварительно записаны в XML-файл с помощью класса XmlSerializer.

Пример

Данный пример кода доступен также в качестве фрагмента кода IntelliSense. В выборе фрагментов кода он находится в XML. Дополнительные сведения см. в разделе Практическое руководство. Вставка фрагментов кода IntelliSense.

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()
{
    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 = new Book();
    overview = (Book)reader.Deserialize(file);

    Console.WriteLine(overview.title);

}

Компиляция кода

Следует заменить имя файла "c:\IntroToVB.xml" на имя файла, в котором содержатся сериализованные данные. Дополнительные сведения о сериализации данных см. в разделе Практическое руководство. Запись данных объекта в XML-файл (C# и Visual Basic).

У класса должен быть открытый конструктор без параметров.

Десериализуются только общие свойства и поля.

Отказоустойчивость

Исключение может появиться при следующих условиях.

  • В сериализованном классе нет открытого конструктора без параметров.

  • Данные в файле не являются данными из класса, который был десериализован.

  • Файл не существует (IOException).

Безопасность

Всегда следует проверять входные данные и никогда не стоит десериализовывать данные из непроверенных источников. Созданный заново объект выполняется на локальном компьютере с разрешениями кода, который его десериализовал. Следует проверять все входные данные перед использованием их в приложении.

См. также

Задачи

Практическое руководство. Запись данных объекта в XML-файл (C# и Visual Basic)

Ссылки

StreamWriter

Основные понятия

Руководство по программированию на C#

Другие ресурсы

Сериализация (C# и Visual Basic)

Руководство по программированию на Visual Basic