IXmlSerializable.ReadXml(XmlReader) Metoda

Definicja

Generuje obiekt na podstawie reprezentacji 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)

Parametry

reader
XmlReader

Strumień XmlReader, z którego deserializowany jest obiekt.

Przykłady

Poniższy przykład ilustruje implementację ReadXml metody .

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

Poniższy przykład ilustruje użycie XmlSerializer klasy do deserializacji tego obiektu.

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

Uwagi

Metoda ReadXml musi odtworzyć obiekt przy użyciu informacji napisanych przez metodę WriteXml .

Po wywołaniu tej metody czytnik jest umieszczony w tagu startowym, który opakowuje informacje o twoim typie. Oznacza to, że bezpośrednio na tagu startowym wskazującym początek serializowanego obiektu. Gdy ta metoda zostanie zwrócona, musi odczytać cały element od początku do końca, w tym całą jego zawartość. WriteXml W przeciwieństwie do metody struktura nie obsługuje automatycznie elementu otoki. Implementacja musi to zrobić. Nie można obserwować tych reguł pozycjonowania może spowodować wygenerowanie nieoczekiwanych wyjątków środowiska uruchomieniowego lub uszkodzonych danych.

Podczas implementowania tej metody należy rozważyć możliwość, że złośliwy użytkownik może zapewnić dobrze sformułowaną, ale nieprawidłową reprezentację XML w celu wyłączenia lub zmiany zachowania aplikacji.

Dotyczy