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);
  }

}

Комментарии

Метод должен воспроизводить объект, используя сведения, записанные WriteXml методом. ReadXmlThe 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.

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