Comparteix a través de


IXmlSerializable.ReadXml(XmlReader) Método

Definición

Genera un objeto a partir de su representación XML.

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

Flujo de XmlReader desde el que se deserializa el objeto.

Ejemplos

En el ejemplo siguiente se muestra una implementación del ReadXml método .

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

En el ejemplo siguiente se muestra el uso de la XmlSerializer clase para deserializar este objeto.

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

Comentarios

El ReadXml método debe reconstituir el objeto utilizando la información escrita por el WriteXml método .

Cuando se llama a este método, el lector se coloca en la etiqueta de inicio que ajusta la información del tipo. Es decir, directamente en la etiqueta de inicio que indica el principio de un objeto serializado. Cuando este método devuelve, debe haber leído todo el elemento de principio a fin, incluido todo su contenido. A diferencia del WriteXml método , el marco no controla automáticamente el elemento contenedor. La implementación debe hacerlo. Si no se observan estas reglas de posicionamiento, el código puede provocar que el código genere excepciones inesperadas en tiempo de ejecución o datos dañados.

Al implementar este método, debe considerar la posibilidad de que un usuario malintencionado proporcione una representación XML bien formada pero no válida para deshabilitar o modificar el comportamiento de la aplicación.

Se aplica a