IXmlSerializable.ReadXml(XmlReader) Methode

Definition

Generiert ein Objekt aus dessen XML-Darstellung.

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)

Parameter

reader
XmlReader

Der XmlReader-Stream, aus dem das Objekt deserialisiert wird.

Beispiele

Im folgenden Beispiel wird eine Implementierung der ReadXml Methode veranschaulicht.

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

Im folgenden Beispiel wird die Verwendung der XmlSerializer Klasse veranschaulicht, um dieses Objekt zu deserialisieren.

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

Hinweise

Die ReadXml Methode muss Ihr Objekt mithilfe der Von der WriteXml Methode geschriebenen Informationen rekonstituieren.

Wenn diese Methode aufgerufen wird, wird der Leser auf dem Starttag positioniert, der die Informationen für Ihren Typ umschließt. Das heißt, direkt am Starttag, der den Anfang eines serialisierten Objekts angibt. Wenn diese Methode zurückgegeben wird, muss das gesamte Element von Anfang bis Ende gelesen werden, einschließlich aller Inhalte. WriteXml Im Gegensatz zur Methode behandelt das Framework das Wrapperelement nicht automatisch. Ihre Implementierung muss dies tun. Fehler beim Beobachten dieser Positionierungsregeln kann dazu führen, dass Code unerwartete Laufzeit-Ausnahmen oder beschädigte Daten generiert.

Bei der Implementierung dieser Methode sollten Sie die Möglichkeit berücksichtigen, dass ein böswilliger Benutzer möglicherweise eine gut gebildete, aber ungültige XML-Darstellung bereitstellen kann, um das Verhalten Ihrer Anwendung zu deaktivieren oder anderweitig zu ändern.

Gilt für: