IXmlSerializable 인터페이스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
XML serialization 및 deserialization을 위한 사용자 지정 서식을 제공합니다.
public interface class IXmlSerializable
public interface IXmlSerializable
type IXmlSerializable = interface
Public Interface IXmlSerializable
- 파생
예제
다음 예제 코드는 프라이빗 필드를 직렬화하는 인터페이스의 IXmlSerializable 구현을 보여 줍니다.
#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);
}
}
설명
이 인터페이스를 구현하는 데는 두 가지 이유가 있습니다. 첫 번째는 개체가 에 의해 직렬화되거나 역직렬화하는 방법을 제어하는 것입니다 XmlSerializer. 예를 들어 큰 데이터 집합을 버퍼링하는 대신 데이터를 바이트로 청크할 수 있으며 Base64 인코딩을 사용하여 데이터를 인코딩할 때 발생하는 인플레이션을 방지할 수도 있습니다. serialization을 제어하려면 및 WriteXml 메서드를 ReadXml 구현하여 XML을 XmlReader 읽고 쓰는 데 사용되는 및 XmlWriter 클래스를 제어합니다. 이에 대한 예제는 방법: 직렬화된 데이터 청크를 참조하세요.
두 번째 이유는 스키마를 제어할 수 있기 때문입니다. 이를 사용하도록 설정하려면 를 직렬화 가능한 형식에 적용 XmlSchemaProviderAttribute 하고 스키마를 반환하는 정적 멤버의 이름을 지정해야 합니다. 예제는 를 XmlSchemaProviderAttribute 참조하세요.
인터페이스를 구현하는 클래스에는 매개 변수가 없는 생성자가 있어야 합니다. 이는 클래스의 요구 사항입니다 XmlSerializer .
메서드
GetSchema() |
이 메서드는 예약되어 있으므로 사용해서는 안 됩니다.
|
ReadXml(XmlReader) |
해당 XML 표현에서 개체를 생성합니다. |
WriteXml(XmlWriter) |
개체를 해당 XML 표현으로 변환합니다. |
적용 대상
추가 정보
.NET