다음을 통해 공유


IXmlSerializable.WriteXml(XmlWriter) 메서드

정의

개체를 해당 XML 표현으로 변환합니다.

public:
 void WriteXml(System::Xml::XmlWriter ^ writer);
public void WriteXml (System.Xml.XmlWriter writer);
abstract member WriteXml : System.Xml.XmlWriter -> unit
Public Sub WriteXml (writer As XmlWriter)

매개 변수

writer
XmlWriter

개체를 직렬화할 대상 XmlWriter 스트림입니다.

예제

다음 예제에서는 메서드의 구현을 보여 줍니다 WriteXml .

virtual void WriteXml( XmlWriter^ writer )
{
   writer->WriteString( personName );
}
public void WriteXml (XmlWriter writer)
{
    writer.WriteString(personName);
}

다음 예제에서는 클래스를 사용하여 이 개체를 XmlSerializer 역직렬화하는 방법을 보여 줍니다.

#using <System.Xml.dll>
#using <System.dll>
#using <Person.dll>

using namespace System;
using namespace System::Xml;
using namespace System::Xml::Serialization;

int main()
{
   // Create a person object.
   Person ^ fred = gcnew Person( "Fred Flintstone" );

   // Serialize the object to a file.
   XmlTextWriter^ writer = gcnew XmlTextWriter( "test.xml", nullptr );
   XmlSerializer^ serializer = gcnew XmlSerializer( Person::typeid );
   serializer->Serialize( writer, fred );
}
using System;
using System.Xml;
using System.Xml.Serialization;

public class Writer {

  public static void Main() {

    // Create a person object.
    Person fred = new Person("Fred Flintstone");

    // Serialize the object to a file.
    XmlTextWriter writer = new XmlTextWriter("test.xml", null);
    XmlSerializer serializer = new XmlSerializer(typeof(Person));
    serializer.Serialize(writer, fred);
  }
}

설명

제공하는 구현은 WriteXml 개체의 XML 표현을 작성해야 합니다. 프레임워크는 래퍼 요소를 작성하고 시작 후 XML 기록기를 배치합니다. 구현에서 자식 요소를 포함하여 해당 콘텐츠를 작성할 수 있습니다. 그런 다음 프레임워크는 래퍼 요소를 닫습니다.

메서드가 개체를 XmlWriter 재구성할 수 있도록 스트림에 ReadXml 충분한 정보를 씁니다.

예를 들어 개체 상태에 배열 변수가 포함된 경우 배열의 길이를 작성하거나 부모 요소를 사용하여 배열 값을 설명하는 요소를 포함해야 합니다. 따라서 개체가 재구성될 때 읽을 값의 수를 알 수 있습니다.

적용 대상