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

Definição

Gera um objeto de sua representação 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)

Parâmetros

reader
XmlReader XmlReader XmlReader XmlReader

O fluxo do XmlReader do qual o objeto é desserializado.The XmlReader stream from which the object is deserialized.

Exemplos

O exemplo a seguir ilustra uma implementação do ReadXml método.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();
}

O exemplo a seguir ilustra o uso da XmlSerializer classe para desserializar esse objeto.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);
  }

}

Comentários

O ReadXml método deve reconstituir o objeto usando as informações que foram gravadas WriteXml pelo método.The ReadXml method must reconstitute your object using the information that was written by the WriteXml method.

Quando esse método é chamado, o leitor é posicionado na marca de início que encapsula as informações do seu tipo.When this method is called, the reader is positioned on the start tag that wraps the information for your type. Ou seja, diretamente na marca de início que indica o início de um objeto serializado.That is, directly on the start tag that indicates the beginning of a serialized object. Quando esse método retorna, ele deve ter lido todo o elemento do início ao fim, incluindo todo o seu conteúdo.When this method returns, it must have read the entire element from beginning to end, including all of its contents. Ao contrário WriteXml do método, a estrutura não manipula o elemento wrapper automaticamente.Unlike the WriteXml method, the framework does not handle the wrapper element automatically. Sua implementação deve fazer isso.Your implementation must do so. A falha ao observar essas regras de posicionamento pode fazer com que o código gere exceções de tempo de execução inesperados ou dados corrompidos.Failing to observe these positioning rules may cause code to generate unexpected runtime exceptions or corrupt data.

Ao implementar esse método, você deve considerar a possibilidade de um usuário mal-intencionado fornecer uma representação XML bem formada, mas inválida, para desabilitar ou, de outra forma, alterar o comportamento do seu aplicativo.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.

Aplica-se a