IXmlSerializable.ReadXml(XmlReader) Metódus

Definíció

Létrehoz egy objektumot az XML-reprezentációjából.

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éterek

reader
XmlReader

Az XmlReader a stream, amelyből az objektum deszerializálva van.

Példák

Az alábbi példa a metódus implementálását szemlélteti ReadXml .

public void ReadXml (XmlReader reader)
{
    personName = reader.ReadString();
}

Az alábbi példa az osztálynak az XmlSerializer objektum deszerializálására való használatát mutatja be.

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

Megjegyzések

A ReadXml metódusnak újra létre kell tennie az objektumot a metódus által WriteXml írt információk alapján.

Ennek a metódusnak a meghívásakor az olvasó a típus információit burkoló kezdőcímkén lesz elhelyezve. Ez azt jelenti, hogy közvetlenül a kezdőcímkén, amely egy szerializált objektum elejét jelzi. Amikor ez a metódus visszatér, a teljes elemet be kell olvasnia az elejétől a végéig, beleértve az összes tartalmát is. A WriteXml metódustól eltérően a keretrendszer nem kezeli automatikusan a burkolóelemet. A megvalósításnak ezt kell tennie. Ha nem tartja be ezeket a helymeghatározó szabályokat, a kód váratlan futásidejű kivételeket vagy sérült adatokat eredményezhet.

A módszer megvalósításakor érdemes megfontolni annak lehetőségét, hogy egy rosszindulatú felhasználó megfelelően formázott, de érvénytelen XML-reprezentációt biztosítson az alkalmazás viselkedésének letiltásához vagy egyéb módon történő módosításához.

A következőre érvényes: