Exporter (0) Imprimer
Développer tout
Cet article a fait l'objet d'une traduction automatique. Déplacez votre pointeur sur les phrases de l'article pour voir la version originale de ce texte. Informations supplémentaires.
Traduction
Source

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

Le type XmlObjectSerializer expose les membres suivants.

  NomDescription
Méthode protégéePris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreXmlObjectSerializerInitialise une nouvelle instance de la classe XmlObjectSerializer.
Début

  NomDescription
Méthode publiquePris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreEquals(Object)Détermine si l'objet spécifié est identique à l'objet actuel. (Hérité de Object.)
Méthode protégéePris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreFinalize 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.)
Méthode publiquePris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreGetHashCodeSert de fonction de hachage par défaut. (Hérité de Object.)
Méthode publiquePris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreGetTypeObtient le Type de l'instance actuelle. (Hérité de Object.)
Méthode publiquePris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreIsStartObject(XmlDictionaryReader)Obtient une valeur qui spécifie si XmlDictionaryReader est positionné sur un élément XML qui peut être lu.
Méthode publiquePris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreIsStartObject(XmlReader)Obtient une valeur qui spécifie si XmlReader est positionné sur un élément XML qui peut être lu.
Méthode protégéePris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreMemberwiseCloneCrée une copie superficielle de l'objet Object actuel. (Hérité de Object.)
Méthode publiquePris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreReadObject(Stream)Lit le flux ou le document XML avec un Stream et retourne l'objet désérialisé.
Méthode publiquePris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreReadObject(XmlDictionaryReader)Lit le document ou le flux XML avec un XmlDictionaryReader et retourne l'objet désérialisé.
Méthode publiquePris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreReadObject(XmlReader)Lit le document ou le flux XML avec un XmlReader et retourne l'objet désérialisé.
Méthode publiquePris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreReadObject(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.
Méthode publiquePris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreReadObject(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.
Méthode publiquePris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreToStringRetourne une chaîne qui représente l'objet actif. (Hérité de Object.)
Méthode publiquePris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreWriteEndObject(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.
Méthode publiquePris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreWriteEndObject(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.
Méthode publiquePris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreWriteObject(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é.
Méthode publiquePris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreWriteObject(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é.
Méthode publiquePris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreWriteObject(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é.
Méthode publiquePris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreWriteObjectContent(XmlDictionaryWriter, Object)Écrit uniquement le contenu de l'objet dans le flux ou le document XML à l'aide du XmlDictionaryWriter spécifié.
Méthode publiquePris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreWriteObjectContent(XmlWriter, Object)Écrit uniquement le contenu de l'objet dans le flux ou le document XML avec le XmlWriter spécifié.
Méthode publiquePris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreWriteStartObject(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é.
Méthode publiquePris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreWriteStartObject(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é.
Début

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


.NET Framework

Pris en charge dans : 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0

.NET Framework Client Profile

Pris en charge dans : 4, 3.5 SP1

Bibliothèque de classes portable

Pris en charge dans : Bibliothèque de classes portable

.NET pour les applications du Windows Store

Pris en charge dans : Windows 8

.NET pour les applications Windows Phone

Pris en charge dans : Windows Phone 8, Silverlight 8.1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (rôle principal du serveur non pris en charge), Windows Server 2008 R2 (rôle principal du serveur pris en charge avec SP1 ou version ultérieure ; Itanium non pris en charge)

Le .NET Framework ne prend pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.

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

Ajouts de la communauté

AJOUTER
Afficher:
© 2014 Microsoft