IXmlSerializable.ReadXml(XmlReader) メソッド

定義

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)

パラメーター

reader
XmlReader

オブジェクトの逆シリアル化元の XmlReader ストリーム。

次の例は、 ReadXml メソッドの実装を示しています。

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

次の例は、 XmlSerializer クラスを使用してこのオブジェクトを逆シリアル化する方法を示しています。

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 メソッドによって書き込まれた情報を使用して、オブジェクトを再構成する必要があります。

このメソッドが呼び出されると、リーダーは、型の情報をラップする開始タグに配置されます。 つまり、シリアル化されたオブジェクトの先頭を示す開始タグに直接置かれます。 このメソッドから制御が戻るときには、要素全体を最初から最後まで読み取る必要があります(すべての内容を含む)。 WriteXmlメソッドとは異なり、フレームワークはラッパー要素を自動的に処理しません。 実装ではそうする必要があります。 これらの配置規則を観察しないと、コードによって予期しないランタイム例外または破損したデータが生成される可能性があります。

このメソッドを実装する場合は、悪意のあるユーザーが、アプリケーションの動作を無効にしたり変更したりするために、整形式の無効な XML 表現を提供する可能性を考慮する必要があります。

適用対象