IXmlSerializable Интерфейс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Предоставляет настраиваемое форматирование для сериализации и десериализации 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. Чтобы управлять сериализацией, реализуйте ReadXml методы WriteXml и методы для управления ими XmlReaderXmlWriter , используемых для чтения и записи XML. Пример этого см. в разделе "Практическое руководство. Фрагментированные сериализованные данные".
Вторая причина заключается в том, чтобы управлять схемой. Чтобы включить эту функцию, необходимо применить XmlSchemaProviderAttribute к сериализуемому типу и указать имя статического члена, возвращающего схему. XmlSchemaProviderAttribute См. пример.
Класс, реализующий интерфейс, должен иметь конструктор без параметров. Это требование XmlSerializer класса.
Методы
| Имя | Описание |
|---|---|
| GetSchema() |
Этот метод зарезервирован и не должен использоваться. При реализации интерфейса |
| ReadXml(XmlReader) |
Создает объект из его XML-представления. |
| WriteXml(XmlWriter) |
Преобразует объект в его XML-представление. |