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

개체가 deserialize되는 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 이 개체를 deserialize 할 클래스입니다.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. 즉, 시작 태그에 직접 나타내는 serialize 된 개체의 시작 부분입니다.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.

적용 대상