XmlObjectSerializer XmlObjectSerializer XmlObjectSerializer XmlObjectSerializer Class

Définition

Fournit la classe de base utilisée pour sérialiser des objets en tant que documents ou flux XML.Provides the base class used to serialize objects as XML streams or documents. Cette classe est abstraite.This class is abstract.

public ref class XmlObjectSerializer abstract
public abstract class XmlObjectSerializer
type XmlObjectSerializer = class
Public MustInherit Class XmlObjectSerializer
Héritage
XmlObjectSerializerXmlObjectSerializerXmlObjectSerializerXmlObjectSerializer
Dérivé

Exemples

L'exemple suivant présente une méthode nommée WriteObjectWithInstance qui inclut un XmlObjectSerializer en tant que paramètre.The following example shows a method named WriteObjectWithInstance that includes an XmlObjectSerializer as a parameter. La méthode sérialise un objet à l'aide de DataContractSerializer ou de NetDataContractSerializer en appelant la méthode WriteObject.The method serializes an object using either the DataContractSerializer or NetDataContractSerializer by calling the WriteObject method.

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 XmlObjectSerializer pour créer votre propre sérialiseur afin de sérialiser et désérialiser des objets.Extend the XmlObjectSerializer to create your own serializer to serialize and deserialize objects. La classe DataContractSerializer et la classe NetDataContractSerializer héritent toutes les deux de XmlObjectSerializer et sont utilisées pour sérialiser et désérialiser des objets qui se conforment aux règles de contrat de données (objets créés à l'aide des attributs DataContractAttribute et DataMemberAttribute).Both the DataContractSerializer class and the NetDataContractSerializer class inherit from the XmlObjectSerializer and are used to serialize and deserialize objects that conform to data contract rules (objects created using the DataContractAttribute and the DataMemberAttribute).

Notes pour les héritiers

Lorsque vous héritez de XmlObjectSerializer, vous devez substituer les membres suivants : WriteStartObject(XmlDictionaryWriter, Object), WriteObjectContent(XmlDictionaryWriter, Object), WriteEndObject(XmlDictionaryWriter).When you inherit from XmlObjectSerializer, you must override the following members: WriteStartObject(XmlDictionaryWriter, Object), WriteObjectContent(XmlDictionaryWriter, Object), WriteEndObject(XmlDictionaryWriter). En outre, les méthodes IsStartObject et ReadObject doivent être implémentées pour la lecture et la désérialisation.Additionally, the IsStartObject and ReadObject methods must be implemented for reading and deserializing.

Constructeurs

XmlObjectSerializer() XmlObjectSerializer() XmlObjectSerializer() XmlObjectSerializer()

Initialise une nouvelle instance de la classe XmlObjectSerializer.Initializes a new instance of the XmlObjectSerializer class.

Méthodes

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

Détermine si l'objet spécifié est identique à l'objet actuel.Determines whether the specified object is equal to the current object.

(Inherited from Object)
GetHashCode() GetHashCode() GetHashCode() GetHashCode()

Fait office de fonction de hachage par défaut.Serves as the default hash function.

(Inherited from Object)
GetType() GetType() GetType() GetType()

Obtient le Type de l'instance actuelle.Gets the Type of the current instance.

(Inherited from Object)
IsStartObject(XmlDictionaryReader) IsStartObject(XmlDictionaryReader) IsStartObject(XmlDictionaryReader) IsStartObject(XmlDictionaryReader)

Obtient une valeur qui spécifie si XmlDictionaryReader est positionné sur un élément XML qui peut être lu.Gets a value that specifies whether the XmlDictionaryReader is positioned over an XML element that can be read.

IsStartObject(XmlReader) IsStartObject(XmlReader) IsStartObject(XmlReader) IsStartObject(XmlReader)

Obtient une valeur qui spécifie si XmlReader est positionné sur un élément XML qui peut être lu.Gets a value that specifies whether the XmlReader is positioned over an XML element that can be read.

MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

Crée une copie superficielle de l'objet Object actuel.Creates a shallow copy of the current Object.

(Inherited from Object)
ReadObject(Stream) ReadObject(Stream) ReadObject(Stream) ReadObject(Stream)

Lit le flux ou le document XML avec un Stream et retourne l'objet désérialisé.Reads the XML stream or document with a Stream and returns the deserialized object.

ReadObject(XmlDictionaryReader) ReadObject(XmlDictionaryReader) ReadObject(XmlDictionaryReader) ReadObject(XmlDictionaryReader)

Lit le document ou le flux XML avec un XmlDictionaryReader et retourne l'objet désérialisé.Reads the XML document or stream with an XmlDictionaryReader and returns the deserialized object.

ReadObject(XmlDictionaryReader, Boolean) ReadObject(XmlDictionaryReader, Boolean) ReadObject(XmlDictionaryReader, Boolean) ReadObject(XmlDictionaryReader, Boolean)

Lit le flux ou le document XML avec un XmlDictionaryReader 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 les lire.Reads the XML stream or document with an XmlDictionaryReader and returns the deserialized object; it also enables you to specify whether the serializer can read the data before attempting to read it.

ReadObject(XmlReader) ReadObject(XmlReader) ReadObject(XmlReader) ReadObject(XmlReader)

Lit le document ou le flux XML avec un XmlReader et retourne l'objet désérialisé.Reads the XML document or stream with an XmlReader and returns the deserialized object.

ReadObject(XmlReader, Boolean) ReadObject(XmlReader, Boolean) ReadObject(XmlReader, Boolean) ReadObject(XmlReader, Boolean)

Lit le document ou le flux XML avec un XmlReader 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 les lire.Reads the XML document or stream with an XmlReader and returns the deserialized object; it also enables you to specify whether the serializer can read the data before attempting to read it.

ToString() ToString() ToString() ToString()

Retourne une chaîne qui représente l'objet actuel.Returns a string that represents the current object.

(Inherited from Object)
WriteEndObject(XmlDictionaryWriter) WriteEndObject(XmlDictionaryWriter) WriteEndObject(XmlDictionaryWriter) WriteEndObject(XmlDictionaryWriter)

Écrit la fin des données d'objet comme un élément XML de fermeture dans le document ou le flux XML avec un XmlDictionaryWriter.Writes the end of the object data as a closing XML element to the XML document or stream with an XmlDictionaryWriter.

WriteEndObject(XmlWriter) WriteEndObject(XmlWriter) WriteEndObject(XmlWriter) WriteEndObject(XmlWriter)

Écrit la fin des données d'objet comme un élément XML de fermeture dans le document ou le flux XML avec un XmlWriter.Writes the end of the object data as a closing XML element to the XML document or stream with an XmlWriter.

WriteObject(Stream, Object) WriteObject(Stream, Object) WriteObject(Stream, Object) WriteObject(Stream, Object)

Écrit le contenu complet (début, contenu et fin) de l'objet dans le flux ou le document XML avec le Stream spécifié.Writes the complete content (start, content, and end) of the object to the XML document or stream with the specified Stream.

WriteObject(XmlDictionaryWriter, Object) WriteObject(XmlDictionaryWriter, Object) WriteObject(XmlDictionaryWriter, Object) WriteObject(XmlDictionaryWriter, Object)

Écrit le contenu complet (début, contenu et fin) de l'objet dans le flux ou le document XML avec le XmlDictionaryWriter spécifié.Writes the complete content (start, content, and end) of the object to the XML document or stream with the specified XmlDictionaryWriter.

WriteObject(XmlWriter, Object) WriteObject(XmlWriter, Object) WriteObject(XmlWriter, Object) WriteObject(XmlWriter, Object)

Écrit le contenu complet (début, contenu et fin) de l'objet dans le flux ou le document XML avec le XmlWriter spécifié.Writes the complete content (start, content, and end) of the object to the XML document or stream with the specified XmlWriter.

WriteObjectContent(XmlDictionaryWriter, Object) WriteObjectContent(XmlDictionaryWriter, Object) WriteObjectContent(XmlDictionaryWriter, Object) WriteObjectContent(XmlDictionaryWriter, Object)

Écrit uniquement le contenu de l'objet dans le flux ou le document XML à l'aide du XmlDictionaryWriter spécifié.Writes only the content of the object to the XML document or stream using the specified XmlDictionaryWriter.

WriteObjectContent(XmlWriter, Object) WriteObjectContent(XmlWriter, Object) WriteObjectContent(XmlWriter, Object) WriteObjectContent(XmlWriter, Object)

Écrit uniquement le contenu de l'objet dans le flux ou le document XML avec le XmlWriter spécifié.Writes only the content of the object to the XML document or stream with the specified XmlWriter.

WriteStartObject(XmlDictionaryWriter, Object) WriteStartObject(XmlDictionaryWriter, Object) WriteStartObject(XmlDictionaryWriter, Object) WriteStartObject(XmlDictionaryWriter, Object)

Écrit le début des données de l'objet comme un élément XML d'ouverture à l'aide du XmlDictionaryWriter spécifié.Writes the start of the object's data as an opening XML element using the specified XmlDictionaryWriter.

WriteStartObject(XmlWriter, Object) WriteStartObject(XmlWriter, Object) WriteStartObject(XmlWriter, Object) WriteStartObject(XmlWriter, Object)

Écrit le début des données de l'objet comme un élément XML d'ouverture à l'aide du XmlWriter spécifié.Writes the start of the object's data as an opening XML element using the specified XmlWriter.

S’applique à

Voir aussi