IXmlSerializable 介面
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
為 XML 序列化和還原序列化提供自訂格式。
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編碼將數據編碼時所發生的擴大。 若要控制串行化,請實 ReadXml 作 和 WriteXml 方法來控制 XmlReader 用來讀取和寫入 XML 的 和 XmlWriter 類別。 如需此範例,請參閱 如何:區塊串行化數據。
第二個原因是能夠控制架構。 若要啟用此功能,您必須將 套用 XmlSchemaProviderAttribute 至可串行化的型別,並指定傳回架構的靜態成員名稱。 如需範例,請參閱 XmlSchemaProviderAttribute。
實作 介面的類別必須具有無參數建構函式。 這是類別的需求 XmlSerializer 。
方法
GetSchema() |
這個方法已保留且不應使用。 實作 |
ReadXml(XmlReader) |
從物件的 XML 表示產生該物件。 |
WriteXml(XmlWriter) |
將物件轉換為其 XML 表示。 |