IXmlSerializable インターフェイス
アセンブリ: System.Xml (system.xml.dll 内)
構文
解説
このインターフェイスを実装する理由は 2 つあります。1 つ目は、XmlSerializer によるオブジェクトのシリアル化または逆シリアル化を制御するためです。たとえば、大きいデータセットをバッファリングする代わりに、データをバイト単位にチャンク処理できます。また、データが Base64 エンコーディングを使用してエンコードされるときに増大するのを回避できます。シリアル化を制御するには、ReadXml メソッドおよび WriteXml メソッドを実装して、XML の読み取りと書き込みに使用される XmlReader クラスおよび XmlWriter クラスを制御します。この例については、「方法 : シリアル化されたデータをチャンクする」のトピックを参照してください。
2 つ目の理由は、スキーマの制御を可能にするためです。これを可能にするには、シリアル化できる型に XmlSchemaProviderAttribute を適用し、スキーマを返す静的メンバの名前を指定する必要があります。例については、XmlSchemaProviderAttribute を参照してください。
このインターフェイスを実装するクラスには、パラメータなしのコンストラクタが使用されている必要があります。このことは、XmlSerializer クラスの必須要件です。
プライベート フィールドをシリアル化する IXmlSerializable インターフェイスを実装する方法を次のコード例に示します。
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); } }
#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); } };
import System.*; import System.Xml.*; import System.Xml.Schema.*; import System.Xml.Serialization.*; public class Person implements IXmlSerializable { // Private state private String personName; // Constructors public Person(String name) { personName = name; } //Person public Person() { personName = null; } //Person // Xml Serialization Infrastructure public void WriteXml(XmlWriter writer) { writer.WriteString(personName); } //WriteXml public void ReadXml(XmlReader reader) { personName = reader.ReadString(); } //ReadXml public XmlSchema GetSchema() { return null; } //GetSchema // Print public String ToString() { return personName; } //ToString } //Person
Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。
参照
IXmlSerializable メソッド
パブリック メソッド
名前 | 説明 | |
---|---|---|
GetSchema | このプロパティは予約されています。代わりに XmlSchemaProviderAttribute をクラスに適用します。 | |
ReadXml | オブジェクトの XML 表現からオブジェクトを生成します。 | |
WriteXml | オブジェクトを XML 表現に変換します。 |
IXmlSerializable メンバ
Weblioに収録されているすべての辞書からIXmlSerializableを検索する場合は、下記のリンクをクリックしてください。
全ての辞書からIXmlSerializableを検索
- IXmlSerializableのページへのリンク