XmlObjectSerializer Classe
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Fournit la classe de base utilisée pour sérialiser des objets en tant que flux ou documents XML. Cette classe est abstraite.
public ref class XmlObjectSerializer abstract
public abstract class XmlObjectSerializer
type XmlObjectSerializer = class
Public MustInherit Class XmlObjectSerializer
- Héritage
-
XmlObjectSerializer
- Dérivé
Exemples
L’exemple suivant montre une méthode nommée WriteObjectWithInstance qui inclut un XmlObjectSerializer paramètre. La méthode sérialise un objet à l’aide de la DataContractSerializer méthode ou NetDataContractSerializer en appelant la WriteObject méthode.
public class Test
{
private void WriteObjectWithInstance(XmlObjectSerializer xm, Company graph,
string fileName)
{
// Use either the XmlDataContractSerializer or NetDataContractSerializer,
// or any other class that inherits from XmlObjectSerializer to write with.
Console.WriteLine(xm.GetType());
FileStream fs = new FileStream(fileName, FileMode.Create);
XmlDictionaryWriter writer = XmlDictionaryWriter.CreateTextWriter(fs);
xm.WriteObject(writer, graph);
Console.WriteLine("Done writing {0}", fileName);
}
private void Run()
{
// Create the object to write to a file.
Company graph = new Company();
graph.Name = "cohowinery.com";
// Create a DataContractSerializer and a NetDataContractSerializer.
// Pass either one to the WriteObjectWithInstance method.
DataContractSerializer dcs = new DataContractSerializer(typeof(Company));
NetDataContractSerializer ndcs = new NetDataContractSerializer();
WriteObjectWithInstance(dcs, graph, @"datacontract.xml");
WriteObjectWithInstance(ndcs, graph, @"netDatacontract.xml");
}
[DataContract]
public class Company
{
[DataMember]
public string Name;
}
static void Main()
{
try
{
Console.WriteLine("Starting");
Test t = new Test();
t.Run();
Console.WriteLine("Done");
Console.ReadLine();
}
catch (InvalidDataContractException iExc)
{
Console.WriteLine("You have an invalid data contract: ");
Console.WriteLine(iExc.Message);
Console.ReadLine();
}
catch (SerializationException serExc)
{
Console.WriteLine("There is a problem with the instance:");
Console.WriteLine(serExc.Message);
Console.ReadLine();
}
catch (QuotaExceededException qExc)
{
Console.WriteLine("The quota has been exceeded");
Console.WriteLine(qExc.Message);
Console.ReadLine();
}
catch (Exception exc)
{
Console.WriteLine(exc.Message);
Console.WriteLine(exc.ToString());
Console.ReadLine();
}
}
Public Class Test
Private Sub WriteObjectWithInstance(ByVal xm As XmlObjectSerializer, _
ByVal graph As Company, ByVal fileName As String)
' Use either the XmlDataContractSerializer or NetDataContractSerializer,
' or any other class that inherits from XmlObjectSerializer to write with.
Console.WriteLine(xm.GetType())
Dim fs As New FileStream(fileName, FileMode.Create)
Dim writer As XmlDictionaryWriter = XmlDictionaryWriter.CreateTextWriter(fs)
xm.WriteObject(writer, graph)
Console.WriteLine("Done writing {0}", fileName)
End Sub
Private Sub Run()
' Create the object to write to a file.
Dim graph As New Company()
graph.Name = "cohowinery.com"
' Create a DataContractSerializer and a NetDataContractSerializer.
' Pass either one to the WriteObjectWithInstance method.
Dim dcs As New DataContractSerializer(GetType(Company))
Dim ndcs As New NetDataContractSerializer()
WriteObjectWithInstance(dcs, graph, "datacontract.xml")
WriteObjectWithInstance(ndcs, graph, "netDatacontract.xml")
End Sub
<DataContract()> _
Public Class Company
<DataMember()> _
Public Name As String
End Class
Shared Sub Main()
Try
Console.WriteLine("Starting")
Dim t As New Test()
t.Run()
Console.WriteLine("Done")
Console.ReadLine()
Catch iExc As InvalidDataContractException
Console.WriteLine("You have an invalid data contract: ")
Console.WriteLine(iExc.Message)
Console.ReadLine()
Catch serExc As SerializationException
Console.WriteLine("There is a problem with the instance:")
Console.WriteLine(serExc.Message)
Console.ReadLine()
Catch qExc As QuotaExceededException
Console.WriteLine("The quota has been exceeded")
Console.WriteLine(qExc.Message)
Console.ReadLine()
Catch exc As Exception
Console.WriteLine(exc.Message)
Console.WriteLine(exc.ToString())
Console.ReadLine()
End Try
End Sub
End Class
Remarques
Étendez la XmlObjectSerializer création de votre propre sérialiseur pour sérialiser et désérialiser des objets. La classe et la DataContractSerializerNetDataContractSerializer classe héritent de l’objet XmlObjectSerializer et sont utilisés pour sérialiser et désérialiser des objets conformes aux règles de contrat de données (objets créés à l’aide du DataContractAttribute et du DataMemberAttribute).
Notes pour les responsables de l’implémentation
Lorsque vous héritez de XmlObjectSerializer, vous devez remplacer les membres suivants : WriteStartObject(XmlDictionaryWriter, Object), WriteObjectContent(XmlDictionaryWriter, Object), WriteEndObject(XmlDictionaryWriter). En outre, les méthodes et ReadObject les IsStartObject méthodes doivent être implémentées pour la lecture et la désérialisation.
Constructeurs
| Nom | Description |
|---|---|
| XmlObjectSerializer() |
Initialise une nouvelle instance de la classe XmlObjectSerializer. |
Méthodes
| Nom | Description |
|---|---|
| Equals(Object) |
Détermine si l’objet spécifié est égal à l’objet actuel. (Hérité de Object) |
| GetHashCode() |
Sert de fonction de hachage par défaut. (Hérité de Object) |
| GetType() |
Obtient la Type de l’instance actuelle. (Hérité de Object) |
| IsStartObject(XmlDictionaryReader) |
Obtient une valeur qui spécifie si l’élément XmlDictionaryReader XML est positionné sur un élément XML qui peut être lu. |
| IsStartObject(XmlReader) |
Obtient une valeur qui spécifie si l’élément XmlReader XML est positionné sur un élément XML qui peut être lu. |
| MemberwiseClone() |
Crée une copie superficielle du Objectactuel. (Hérité de Object) |
| ReadObject(Stream) |
Lit le flux XML ou le document avec un Stream objet désérialisé et retourne l’objet désérialisé. |
| ReadObject(XmlDictionaryReader, Boolean) |
Lit le flux XML ou le document avec un XmlDictionaryReader objet désérialisé et retourne l’objet désérialisé ; il vous permet également de spécifier si le sérialiseur peut lire les données avant de tenter de le lire. |
| ReadObject(XmlDictionaryReader) |
Lit le document ou le flux XML avec un XmlDictionaryReader objet désérialisé et retourne l’objet désérialisé. |
| ReadObject(XmlReader, Boolean) |
Lit le document xml ou le flux avec un XmlReader objet désérialisé et retourne l’objet désérialisé ; il vous permet également de spécifier si le sérialiseur peut lire les données avant de tenter de le lire. |
| ReadObject(XmlReader) |
Lit le document ou le flux XML avec un XmlReader objet désérialisé et retourne l’objet désérialisé. |
| ToString() |
Retourne une chaîne qui représente l’objet actuel. (Hérité de Object) |
| WriteEndObject(XmlDictionaryWriter) |
Écrit la fin des données d’objet en tant qu’élément XML fermant dans le document XML ou le flux avec un XmlDictionaryWriter. |
| WriteEndObject(XmlWriter) |
Écrit la fin des données d’objet en tant qu’élément XML fermant dans le document XML ou le flux avec un XmlWriter. |
| WriteObject(Stream, Object) |
Écrit le contenu complet (début, contenu et fin) de l’objet dans le document XML ou le flux avec le fichier spécifié Stream. |
| WriteObject(XmlDictionaryWriter, Object) |
Écrit le contenu complet (début, contenu et fin) de l’objet dans le document XML ou le flux avec le fichier spécifié XmlDictionaryWriter. |
| WriteObject(XmlWriter, Object) |
Écrit le contenu complet (début, contenu et fin) de l’objet dans le document XML ou le flux avec le fichier spécifié XmlWriter. |
| WriteObjectContent(XmlDictionaryWriter, Object) |
Écrit uniquement le contenu de l’objet dans le document XML ou le flux à l’aide du fichier spécifié XmlDictionaryWriter. |
| WriteObjectContent(XmlWriter, Object) |
Écrit uniquement le contenu de l’objet dans le document XML ou le flux avec le fichier spécifié XmlWriter. |
| WriteStartObject(XmlDictionaryWriter, Object) |
Écrit le début des données de l’objet en tant qu’élément XML ouvrant à l’aide du fichier spécifié XmlDictionaryWriter. |
| WriteStartObject(XmlWriter, Object) |
Écrit le début des données de l’objet en tant qu’élément XML ouvrant à l’aide du fichier spécifié XmlWriter. |