IXmlSerializable.ReadXml(XmlReader) Metoda

Definice

Generuje objekt z jeho reprezentace 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

Proud XmlReader, ze kterého je objekt deserializován.

Příklady

Následující příklad ukazuje implementaci ReadXml metody .

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

Následující příklad ukazuje použití XmlSerializer třídy k deserializaci tohoto objektu.

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

Poznámky

Metoda ReadXml musí objekt rekonstituovat pomocí informací, které metoda napsala WriteXml .

Při zavolání této metody je čtečka umístěna na počáteční značce, která zabalí informace o vašem typu. To znamená, že přímo na počáteční značku, která označuje začátek serializovaného objektu. Když tato metoda vrátí, musí číst celý prvek od začátku do konce, včetně veškerého jeho obsahu. WriteXml Na rozdíl od metody architektura nezpracuje element obálky automaticky. Vaše implementace to musí udělat. Nedodržení těchto pravidel pro umístění může způsobit, že kód vygeneruje neočekávané výjimky modulu runtime nebo poškozená data.

Při implementaci této metody byste měli zvážit možnost, že uživatel se zlými úmysly může poskytnout ve správném formátu, ale neplatnou reprezentaci XML s cílem zakázat nebo jinak změnit chování vaší aplikace.

Platí pro