IXmlSerializable.ReadXml(XmlReader) Méthode

Définition

Génère un objet à partir de sa représentation 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)

Paramètres

reader
XmlReader

XmlReader source à partir de laquelle l'objet est désérialisé.The XmlReader stream from which the object is deserialized.

Exemples

L’exemple suivant illustre une implémentation de la ReadXml méthode.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();
}

L’exemple suivant illustre l’utilisation de la XmlSerializer classe pour désérialiser cet objet.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);
  }

}

Remarques

La ReadXml méthode doit reconstituer votre objet à l’aide des informations écrites par WriteXml la méthode.The ReadXml method must reconstitute your object using the information that was written by the WriteXml method.

Lorsque cette méthode est appelée, le lecteur est positionné sur la balise de début qui encapsule les informations de votre type.When this method is called, the reader is positioned on the start tag that wraps the information for your type. Autrement dit, directement sur la balise de début qui indique le début d’un objet sérialisé.That is, directly on the start tag that indicates the beginning of a serialized object. Lorsque cette méthode est retournée, elle doit avoir lu l’intégralité de l’élément du début à la fin, y compris tout son contenu.When this method returns, it must have read the entire element from beginning to end, including all of its contents. Contrairement à WriteXml la méthode, l’infrastructure ne gère pas automatiquement l’élément wrapper.Unlike the WriteXml method, the framework does not handle the wrapper element automatically. Votre implémentation doit le faire.Your implementation must do so. Si vous ne respectez pas ces règles de positionnement, le code risque de générer des exceptions d’exécution inattendues ou des données endommagées.Failing to observe these positioning rules may cause code to generate unexpected runtime exceptions or corrupt data.

Lors de l’implémentation de cette méthode, vous devez prendre en compte la possibilité qu’un utilisateur malveillant fournisse une représentation XML bien formée mais non valide afin de désactiver ou de modifier le comportement de votre application.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.

S’applique à