IXmlSerializable Interface
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Biedt aangepaste opmaak voor XML-serialisatie en deserialisatie.
public interface class IXmlSerializable
public interface IXmlSerializable
type IXmlSerializable = interface
Public Interface IXmlSerializable
- Afgeleid
Voorbeelden
In de volgende voorbeeldcode ziet u een implementatie van de IXmlSerializable interface waarmee een privéveld wordt geserialiseerd.
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);
}
}
Opmerkingen
Er zijn twee redenen om deze interface te implementeren. De eerste is om te bepalen hoe uw object wordt geserialiseerd of gedeserialiseerd door de XmlSerializer. U kunt bijvoorbeeld gegevens in bytes segmenteren in plaats van grote gegevenssets te bufferen en ook de inflatie voorkomen die optreedt wanneer de gegevens worden gecodeerd met base64-codering. Als u de serialisatie wilt beheren, implementeert u de ReadXml en WriteXml methoden voor het beheren van de XmlReader en XmlWriter klassen die worden gebruikt voor het lezen en schrijven van de XML. Zie Procedure: Geserialiseerde gegevens chunk voor een voorbeeld hiervan.
De tweede reden is om het schema te beheren. Als u dit wilt inschakelen, moet u het XmlSchemaProviderAttribute op het serialiseerbare type toepassen en de naam opgeven van het statische lid dat het schema retourneert. Zie het XmlSchemaProviderAttribute voorbeeld voor een voorbeeld.
Een klasse die de interface implementeert, moet een parameterloze constructor hebben. Dit is een vereiste van de XmlSerializer klasse.
Methoden
| Name | Description |
|---|---|
| GetSchema() |
Deze methode is gereserveerd en mag niet worden gebruikt. Wanneer u de |
| ReadXml(XmlReader) |
Hiermee wordt een object gegenereerd op basis van de XML-weergave. |
| WriteXml(XmlWriter) |
Converteert een object naar de XML-weergave. |