XmlObjectSerializer Classe
TOC
Réduire la table des matières
Développer la table des matières
Cet article a fait l’objet d’une traduction automatique. Pour afficher l’article en anglais, activez la case d’option Anglais. Vous pouvez également afficher le texte anglais dans une fenêtre contextuelle en faisant glisser le pointeur de la souris sur le texte traduit.
Traduction
Anglais

XmlObjectSerializer, classe

 

Fournit la classe de base utilisée pour sérialiser des objets en tant que documents ou flux XML. Cette classe est abstraite.

Espace de noms:   System.Runtime.Serialization
Assembly:  System.Runtime.Serialization (dans System.Runtime.Serialization.dll)


public abstract class XmlObjectSerializer

NomDescription
System_CAPS_protmethodXmlObjectSerializer()

Initialise une nouvelle instance de la classe XmlObjectSerializer.

NomDescription
System_CAPS_pubmethodEquals(Object)

Détermine si l'objet spécifié est identique à l'objet actuel.(Hérité de Object.)

System_CAPS_protmethodFinalize()

Autorise un objet à tenter de libérer des ressources et d'exécuter d'autres opérations de nettoyage avant qu'il ne soit récupéré par l'opération garbage collection. (Hérité de Object.)

System_CAPS_pubmethodGetHashCode()

Fait office de fonction de hachage par défaut.(Hérité de Object.)

System_CAPS_pubmethodGetType()

Obtient le Type de l'instance actuelle.(Hérité de Object.)

System_CAPS_pubmethodIsStartObject(XmlDictionaryReader)

Obtient une valeur qui spécifie si le XmlDictionaryReader est positionné sur un élément XML qui peut être lu.

System_CAPS_pubmethodIsStartObject(XmlReader)

Obtient une valeur qui spécifie si le XmlReader est positionné sur un élément XML qui peut être lu.

System_CAPS_protmethodMemberwiseClone()

Crée une copie superficielle du Object actuel.(Hérité de Object.)

System_CAPS_pubmethodReadObject(Stream)

Lit le flux ou le document XML avec un Stream et retourne l'objet désérialisé.

System_CAPS_pubmethodReadObject(XmlDictionaryReader)

Lit le document ou le flux XML avec un XmlDictionaryReader et retourne l'objet désérialisé.

System_CAPS_pubmethodReadObject(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.

System_CAPS_pubmethodReadObject(XmlReader)

Lit le document ou le flux XML avec un XmlReader et retourne l'objet désérialisé.

System_CAPS_pubmethodReadObject(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.

System_CAPS_pubmethodToString()

Retourne une chaîne qui représente l'objet actuel.(Hérité de Object.)

System_CAPS_pubmethodWriteEndObject(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.

System_CAPS_pubmethodWriteEndObject(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.

System_CAPS_pubmethodWriteObject(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é.

System_CAPS_pubmethodWriteObject(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é.

System_CAPS_pubmethodWriteObject(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é.

System_CAPS_pubmethodWriteObjectContent(XmlDictionaryWriter, Object)

Écrit uniquement le contenu de l'objet dans le flux ou le document XML à l'aide du XmlDictionaryWriter spécifié.

System_CAPS_pubmethodWriteObjectContent(XmlWriter, Object)

Écrit uniquement le contenu de l'objet dans le flux ou le document XML avec le XmlWriter spécifié.

System_CAPS_pubmethodWriteStartObject(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é.

System_CAPS_pubmethodWriteStartObject(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é.

Exception Condition
InvalidDataContractException

le type en cours de sérialisation n'est pas conforme aux règles de contrat de données. Par exemple, l'attribut DataContractAttribute n'a pas été appliqué au type.

SerializationException

il y a un problème avec l'instance en cours de sérialisation.

Étendez XmlObjectSerializer pour créer votre propre sérialiseur afin de sérialiser et désérialiser des objets. 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).

Remarques à l'attention des héritiers :

Lorsque vous héritez de XmlObjectSerializer, vous devez substituer les membres suivants : XmlObjectSerializer.WriteStartObject(XmlDictionaryWriter, Object), XmlObjectSerializer.WriteObjectContent(XmlDictionaryWriter, Object), XmlObjectSerializer.WriteEndObject(XmlDictionaryWriter). En outre, les méthodes IsStartObject et ReadObject doivent être implémentées pour la lecture et la désérialisation.

L'exemple suivant présente une méthode nommée WriteObjectWithInstance qui inclut un XmlObjectSerializer en tant que paramètre. La méthode sérialise un objet à l'aide de DataContractSerializer ou de NetDataContractSerializer en appelant la méthode WriteObject.

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();
        }
    }

Universal Windows Platform
Disponible depuis 8
.NET Framework
Disponible depuis 3.0
Portable Class Library
Pris en charge dans : portable .NET platforms
Silverlight
Disponible depuis 2.0
Windows Phone Silverlight
Disponible depuis 7.0
Windows Phone
Disponible depuis 8.1

Tous les membres statiques (Shared en Visual Basic) publics de ce type sont thread-safe. Il n'est pas garanti que les membres d'instance soient thread-safe.

Retour au début
Afficher:
© 2016 Microsoft