IXmlSerializable.ReadXml(XmlReader) IXmlSerializable.ReadXml(XmlReader) IXmlSerializable.ReadXml(XmlReader) IXmlSerializable.ReadXml(XmlReader) Method

定義

オブジェクトの XML 表現からオブジェクトを生成します。Generates an object from its XML representation.

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)

パラメーター

reader
XmlReader XmlReader XmlReader XmlReader

オブジェクトの逆シリアル化元である XmlReader ストリーム。The XmlReader stream from which the object is deserialized.

次の例の実装を示しています、ReadXmlメソッド。The following example illustrates an implementation of the ReadXml method.

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

次の例では、使用、XmlSerializerこのオブジェクトを逆シリアル化するクラス。The following example illustrates the use of the XmlSerializer class to deserialize this object.

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

}

注釈

ReadXmlメソッドは、によって書き込まれた情報を使用して、オブジェクトを再構成する必要があります、WriteXmlメソッド。The ReadXml method must reconstitute your object using the information that was written by the WriteXml method.

このメソッドが呼び出されたときに、型の情報をラップする開始タグにリーダーが配置します。When this method is called, the reader is positioned on the start tag that wraps the information for your type. つまり、開始タグで直接、シリアル化されたオブジェクトの先頭を示します。That is, directly on the start tag that indicates the beginning of a serialized object. このメソッドが戻るときにする必要がありますが要素全体を読み取る最初から最後まで、すべての内容を含むです。When this method returns, it must have read the entire element from beginning to end, including all of its contents. 異なり、WriteXmlメソッド、フレームワークにラッパー要素が自動的に処理されません。Unlike the WriteXml method, the framework does not handle the wrapper element automatically. 実装には、これを行う必要があります。Your implementation must do so. これらの配置ルールの確認に失敗すると、予期しない実行時例外または破損したデータを生成するコードが生じる場合があります。Failing to observe these positioning rules may cause code to generate unexpected runtime exceptions or corrupt data.

このメソッドを実装するときに発生する可能性を検討してください、悪意のあるユーザーが無効にするか、またはそれ以外の場合、アプリケーションの動作を変更するために適切な形式が無効な XML 表現を提供可能性があります。When implementing this method, you should consider the possibility that a malicious user might provide a well-formed but invalid XML representation in order to disable or otherwise alter the behavior of your application.

適用対象