IXmlSerializable 接口
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
为 XML 序列化和反序列化提供自定义格式。
public interface class IXmlSerializable
public interface IXmlSerializable
type IXmlSerializable = interface
Public Interface IXmlSerializable
- 派生
示例
下面的示例代码演示了序列化专用字段的接口的实现 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);
}
}
注解
实现此接口有两个原因。 第一个方法是控制对象的序列化或反序列化方式 XmlSerializer。 例如,可以将数据分块为字节,而不是缓冲大型数据集,并避免使用 Base64 编码对数据进行编码时发生的膨胀。 若要控制序列化,请实现ReadXmlWriteXml控制用于读取和写入 XML 的XmlReader类和XmlWriter方法。 有关此示例,请参阅 “如何:区块序列化数据”。
第二个原因是能够控制架构。 若要启用此功能,必须应用 XmlSchemaProviderAttribute 可序列化类型,并指定返回架构的静态成员的名称。 请参阅有关 XmlSchemaProviderAttribute 示例。
实现接口的类必须具有无参数构造函数。 这是类的要求 XmlSerializer 。
方法
| 名称 | 说明 |
|---|---|
| GetSchema() |
此方法是保留的,不应使用。 实现 |
| ReadXml(XmlReader) |
从其 XML 表示形式生成对象。 |
| WriteXml(XmlWriter) |
将对象转换为其 XML 表示形式。 |