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

Definizione

Genera un oggetto dalla relativa rappresentazione 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)

Parametri

reader
XmlReader XmlReader XmlReader XmlReader

Flusso di XmlReader da cui viene deserializzato l'oggetto.The XmlReader stream from which the object is deserialized.

Esempi

Nell'esempio seguente viene illustrata un'implementazione del ReadXml metodo.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();
}

Nell'esempio seguente viene illustrato l'utilizzo della XmlSerializer classe per deserializzare questo oggetto.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);
  }

}

Commenti

Il ReadXml metodo deve ricostituire l'oggetto usando le informazioni scritte WriteXml dal metodo.The ReadXml method must reconstitute your object using the information that was written by the WriteXml method.

Quando viene chiamato questo metodo, il Reader è posizionato in corrispondenza del tag di inizio che esegue il wrapping delle informazioni per il tipo.When this method is called, the reader is positioned on the start tag that wraps the information for your type. Ovvero direttamente sul tag di inizio che indica l'inizio di un oggetto serializzato.That is, directly on the start tag that indicates the beginning of a serialized object. Quando termina, questo metodo deve avere letto l'intero elemento dall'inizio alla fine, incluso tutto il relativo contenuto.When this method returns, it must have read the entire element from beginning to end, including all of its contents. A differenza del WriteXml metodo, il Framework non gestisce automaticamente l'elemento wrapper.Unlike the WriteXml method, the framework does not handle the wrapper element automatically. Questa operazione deve essere eseguita dall'implementazione di.Your implementation must do so. La mancata osservanza di queste regole di posizionamento può causare la generazione di eccezioni di runtime impreviste o di dati danneggiati.Failing to observe these positioning rules may cause code to generate unexpected runtime exceptions or corrupt data.

Quando si implementa questo metodo, è necessario considerare la possibilità che un utente malintenzionato fornisca una rappresentazione XML ben formata ma non valida per disabilitare o modificare in altro modo il comportamento dell'applicazione.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.

Si applica a