IXmlSerializable IXmlSerializable IXmlSerializable IXmlSerializable Interface

정의

XML serialization 및 deserialization을 위한 사용자 지정 서식을 제공합니다.Provides custom formatting for XML serialization and deserialization.

public interface class IXmlSerializable
public interface IXmlSerializable
type IXmlSerializable = interface
Public Interface IXmlSerializable
파생

예제

다음 예제 코드의 구현을 보여 줍니다는 IXmlSerializable private 필드를 serialize 하는 인터페이스입니다.The following example code shows an implementation of the IXmlSerializable interface that serializes a private field.

#using <System.Xml.dll>

using namespace System;
using namespace System::Xml;
using namespace System::Xml::Schema;
using namespace System::Xml::Serialization;
public ref class Person: public IXmlSerializable
{
private:

   // Private state
   String^ personName;

public:

   // Constructors
   Person( String^ name )
   {
      personName = name;
   }

   Person()
   {
      personName = nullptr;
   }

   // Xml Serialization Infrastructure
   virtual void WriteXml( XmlWriter^ writer )
   {
      writer->WriteString( personName );
   }

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

   virtual XmlSchema^ GetSchema()
   {
      return nullptr;
   }

   // Print
   virtual String^ ToString() override
   {
      return (personName);
   }
};
using System;
using System.Xml;
using System.Xml.Schema;
using System.Xml.Serialization;


public class Person : IXmlSerializable
{

    // Private state

    private string personName;
       

    // Constructors

    public Person (string name)
    {
        personName = name;
    }

    public Person ()
    {
        personName = null;
    }


    // Xml Serialization Infrastructure

    public void WriteXml (XmlWriter writer)
    {
        writer.WriteString(personName);
    }

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

    public XmlSchema GetSchema()
    {
        return(null);
    }

  
    // Print

    public override string ToString()
    {
        return(personName);
    }

}

설명

이 인터페이스를 구현 하는 방법은 두 가지가 있습니다.There are two reasons to implement this interface. 첫 번째 개체는 serialize 하거나 deserialize 하는 방법을 제어 하는 것은 XmlSerializer합니다.The first is to control how your object is serialized or deserialized by the XmlSerializer. 예를 들어, 바이트 큰 데이터 집합을 버퍼링 하는 대신에 데이터를 청크 하 고 Base64 인코딩을 사용 하 여 데이터를 인코딩할 때 발생 하는 인플레이션 방지할 수 있습니다.For example, you can chunk data into bytes instead of buffering large data sets, and also avoid the inflation that occurs when the data is encoded using Base64 encoding. Serialization을 제어 하려면 구현 합니다 ReadXmlWriteXml 제어 하는 메서드는 XmlReaderXmlWriter 읽고 XML을 작성 하는 데 사용 되는 클래스입니다.To control the serialization, implement the ReadXml and WriteXml methods to control the XmlReader and XmlWriter classes used to read and write the XML. 이 예제를 참조 하세요. 방법: Serialize 된 데이터 청크합니다.For an example of this, see How to: Chunk Serialized Data.

두 번째 이유는 스키마를 제어할 수입니다.The second reason is to be able to control the schema. 적용이 기능을 사용 해야 합니다는 XmlSchemaProviderAttribute serializable을 입력 하 고 스키마를 반환 하는 정적 멤버의 이름을 지정 합니다.To enable this, you must apply the XmlSchemaProviderAttribute to the serializable type, and specify the name of the static member that returns the schema. 예제는 XmlSchemaProviderAttribute을 참조하세요.See the XmlSchemaProviderAttribute for an example.

인터페이스를 구현 하는 클래스 매개 변수가 없는 생성자를 있어야 합니다.A class that implements the interface must have a parameterless constructor. 이의 요구를 XmlSerializer 클래스입니다.This is a requirement of the XmlSerializer class.

메서드

GetSchema() GetSchema() GetSchema() GetSchema()

이 메서드는 예약되어 있으므로 사용해서는 안 됩니다.This method is reserved and should not be used. IXmlSerializable 인터페이스를 구현할 때 이 메서드에서 null(Visual Basic에서는 Nothing)을 반환해야 하지만 사용자 지정 스키마를 지정해야 하는 경우에는 XmlSchemaProviderAttribute를 클래스에 적용합니다.When implementing the IXmlSerializable interface, you should return null (Nothing in Visual Basic) from this method, and instead, if specifying a custom schema is required, apply the XmlSchemaProviderAttribute to the class.

ReadXml(XmlReader) ReadXml(XmlReader) ReadXml(XmlReader) ReadXml(XmlReader)

개체의 XML 표현에서 개체를 생성합니다.Generates an object from its XML representation.

WriteXml(XmlWriter) WriteXml(XmlWriter) WriteXml(XmlWriter) WriteXml(XmlWriter)

개체를 XML 표현으로 변환합니다.Converts an object into its XML representation.

적용 대상

추가 정보