IXmlSerializable.ReadXml(XmlReader) Метод

Определение

Создает объект на основе его XML-представления.

C#
public void ReadXml(System.Xml.XmlReader reader);

Параметры

reader
XmlReader

Поток XmlReader, из которого выполняется десериализация объекта.

Примеры

В следующем примере показана ReadXml реализация метода .

C#
public void ReadXml (XmlReader reader)
{
    personName = reader.ReadString();
}

В следующем примере показано использование класса для десериализации XmlSerializer этого объекта.

C#
using System;
using System.IO;
using System.Xml.Serialization;

public class Reader {

  public static void Main() {
    XmlSerializer serializer = new XmlSerializer(typeof(Person));
    FileStream file = new FileStream("test.xml", FileMode.Open);
    Person aPerson = (Person) serializer.Deserialize(file);
    Console.WriteLine(aPerson);
  }
}

Комментарии

Метод ReadXml должен воссоздать объект, используя сведения, записанные методом WriteXml .

При вызове этого метода средство чтения размещается на начальном теге, который заключает в оболочку сведения для вашего типа. То есть непосредственно в теге start, который указывает начало сериализованного объекта. При возврате этого метода он должен прочитать весь элемент от начала до конца, включая все его содержимое. WriteXml В отличие от метода , платформа не обрабатывает элемент-оболочку автоматически. Это необходимо сделать в вашей реализации. Несоблюдение этих правил позиционирования может привести к тому, что код создаст непредвиденные исключения среды выполнения или повреждает данные.

При реализации этого метода следует учитывать возможность того, что злоумышленник может предоставить правильно сформированное, но недопустимое XML-представление, чтобы отключить или иным образом изменить поведение приложения.

Применяется к

Продукт Версии
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0