IXmlSerializable.ReadXml(XmlReader) IXmlSerializable.ReadXml(XmlReader) IXmlSerializable.ReadXml(XmlReader) IXmlSerializable.ReadXml(XmlReader) Method

Определение

Создает объект из представления XML.Generates an object from its XML representation.

public:
 void ReadXml(System::Xml::XmlReader ^ reader);
public void ReadXml (System.Xml.XmlReader reader);
abstract member ReadXml : System.Xml.XmlReader -> unit
Public Sub ReadXml (reader As XmlReader)

Параметры

reader
XmlReader XmlReader XmlReader XmlReader

Поток XmlReader, из которого выполняется десериализация объекта.The XmlReader stream from which the object is deserialized.

Примеры

Следующий пример иллюстрирует реализацию ReadXml метод.The following example illustrates an implementation of the ReadXml method.

virtual void ReadXml( XmlReader^ reader )
{
   personName = reader->ReadString();
}
public void ReadXml (XmlReader reader)
{
    personName = reader.ReadString();
}

Следующий пример иллюстрирует использование XmlSerializer класса, чтобы десериализовать этот объект.The following example illustrates the use of the XmlSerializer class to deserialize this object.

#using <System.Xml.dll>
#using <System.dll>
#using <Person.dll>

using namespace System;
using namespace System::IO;
using namespace System::Xml::Serialization;

int main()
{
   XmlSerializer^ serializer = gcnew XmlSerializer( Person::typeid );
   FileStream^ file = gcnew FileStream( "test.xml",FileMode::Open );
   Person^ aPerson = dynamic_cast<Person^>(serializer->Deserialize( file ));
   Console::WriteLine( aPerson );
}
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 метод.The ReadXml method must reconstitute your object using the information that was written by the WriteXml method.

При вызове этого метода средство чтения находится на открывающий тег, который упаковывает данные для своего типа.When this method is called, the reader is positioned on the start tag that wraps the information for your type. То есть непосредственно в открывающий тег, который указывает начало сериализованного объекта.That is, directly on the start tag that indicates the beginning of a serialized object. При возвращении данного метода он должен прочитать весь элемент от начала до конца, включая все его содержимое.When this method returns, it must have read the entire element from beginning to end, including all of its contents. В отличие от WriteXml метод, платформа автоматически обрабатывает элемент программы-оболочки.Unlike the WriteXml method, the framework does not handle the wrapper element automatically. Реализация должна сделать.Your implementation must do so. При невыполнении этих правил позиционирования может вызвать код, чтобы создать непредвиденные исключения времени выполнения или поврежденные данные.Failing to observe these positioning rules may cause code to generate unexpected runtime exceptions or corrupt data.

При реализации этого метода, следует рассмотреть возможность что пользователь-злоумышленник может предоставить синтаксически правильное, но недопустимый XML-представление, чтобы отключить или изменить поведение приложения.When implementing this method, you should consider the possibility that a malicious user might provide a well-formed but invalid XML representation in order to disable or otherwise alter the behavior of your application.

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