IXmlSerializable.ReadXml(XmlReader) Yöntem

Tanım

XML gösteriminden bir nesne oluşturur.

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)

Parametreler

reader
XmlReader

Nesnenin seri durumda çıkarıldığı XmlReader akışı.

Örnekler

Aşağıdaki örnekte yönteminin bir uygulaması gösterilmektedir ReadXml .

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

Aşağıdaki örnekte, bu nesnenin seri durumdan XmlSerializer çıkarılması için sınıfının kullanımı gösterilmektedir.

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

Açıklamalar

yöntemi tarafından ReadXml yazılan bilgileri kullanarak nesnenizi yeniden oluşturması WriteXml gerekir.

Bu yöntem çağrıldığında okuyucu, türünüzle ilgili bilgileri sarmalayan başlangıç etiketine konumlandırılır. Diğer bir ifadeyle, doğrudan serileştirilmiş bir nesnenin başlangıcını gösteren başlangıç etiketindedir. Bu yöntem döndürdüğünde, tüm içeriği dahil olmak üzere öğenin tamamını baştan sona okuması gerekir. yönteminden WriteXml farklı olarak, çerçeve sarmalayıcı öğesini otomatik olarak işlemez. Uygulamanız bunu yapmalıdır. Bu konumlandırma kurallarını gözlemlememek, kodun beklenmeyen çalışma zamanı özel durumları veya bozuk veriler oluşturmasına neden olabilir.

Bu yöntemi uygularken, kötü amaçlı bir kullanıcının uygulamanızın davranışını devre dışı bırakmak veya başka bir şekilde değiştirmek için iyi biçimlendirilmiş ancak geçersiz bir XML gösterimi sağlama olasılığını göz önünde bulundurmalısınız.

Şunlara uygulanır