IXmlSerializable.ReadXml(XmlReader) Metode

Definisi

Menghasilkan objek dari representasi XML-nya.

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

Aliran XmlReader tempat objek dideserialisasi.

Contoh

Contoh berikut mengilustrasikan implementasi ReadXml metode .

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

Contoh berikut mengilustrasikan penggunaan XmlSerializer kelas untuk mendeserialisasi objek ini.

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

Keterangan

Metode ReadXml harus menyusun ulang objek Anda menggunakan informasi yang ditulis oleh WriteXml metode .

Ketika metode ini dipanggil, pembaca diposisikan pada tag mulai yang membungkus informasi untuk jenis Anda. Artinya, langsung pada tag mulai yang menunjukkan awal objek yang diserialisasikan. Ketika metode ini kembali, metode ini harus membaca seluruh elemen dari awal hingga akhir, termasuk semua kontennya. WriteXml Tidak seperti metode , kerangka kerja tidak menangani elemen pembungkus secara otomatis. Implementasi Anda harus melakukannya. Gagal mengamati aturan penempatan ini dapat menyebabkan kode menghasilkan pengecualian runtime yang tidak terduga atau data yang rusak.

Saat menerapkan metode ini, Anda harus mempertimbangkan kemungkinan bahwa pengguna jahat mungkin memberikan representasi XML yang terbentuk dengan baik tetapi tidak valid untuk menonaktifkan atau mengubah perilaku aplikasi Anda.

Berlaku untuk