IXmlSerializable.ReadXml(XmlReader) Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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
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.