DataContractSerializer DataContractSerializer DataContractSerializer DataContractSerializer Class

Définition

Sérialise et désérialise une instance d'un type dans un flux ou un document XML à l'aide d'un contrat de données fourni.Serializes and deserializes an instance of a type into an XML stream or document using a supplied data contract. Cette classe ne peut pas être héritée.This class cannot be inherited.

public ref class DataContractSerializer sealed : System::Runtime::Serialization::XmlObjectSerializer
public sealed class DataContractSerializer : System.Runtime.Serialization.XmlObjectSerializer
type DataContractSerializer = class
    inherit XmlObjectSerializer
Public NotInheritable Class DataContractSerializer
Inherits XmlObjectSerializer
Héritage
DataContractSerializerDataContractSerializerDataContractSerializerDataContractSerializer

Exemples

L'exemple de code suivant affiche un type nommé Person qui est sérialisé par le DataContractSerializer.The following example code shows a type named Person that is serialized by the DataContractSerializer. L'attribut DataContractAttribute est appliqué à la classe, et l'attribut DataMemberAttribute est appliqué aux membres pour indiquer à la classe DataContractSerializer l'élément à sérialiser.The DataContractAttribute attribute is applied to the class, and the DataMemberAttribute is applied to members to instruct the DataContractSerializer what to serialize.

namespace DataContractSerializerExample
{
    using System;
    using System.Collections;
    using System.Collections.Generic;
    using System.Runtime.Serialization;
    using System.Xml;

    // You must apply a DataContractAttribute or SerializableAttribute
    // to a class to have it serialized by the DataContractSerializer.
    [DataContract(Name = "Customer", Namespace = "http://www.contoso.com")]
    class Person : IExtensibleDataObject
    {
        [DataMember()]
        public string FirstName;
        [DataMember]
        public string LastName;
        [DataMember()]
        public int ID;

        public Person(string newfName, string newLName, int newID)
        {
            FirstName = newfName;
            LastName = newLName;
            ID = newID;
        }

        private ExtensionDataObject extensionData_Value;

        public ExtensionDataObject ExtensionData
        {
            get
            {
                return extensionData_Value;
            }
            set
            {
                extensionData_Value = value;
            }
        }
    }

    public sealed class Test
    {
        private Test() { }

        public static void Main()
        {
            try
            {
                WriteObject("DataContractSerializerExample.xml");
                ReadObject("DataContractSerializerExample.xml");

            }

            catch (SerializationException serExc)
            {
                Console.WriteLine("Serialization Failed");
                Console.WriteLine(serExc.Message);
            }
            catch (Exception exc)
            {
                Console.WriteLine(
                "The serialization operation failed: {0} StackTrace: {1}",
                exc.Message, exc.StackTrace);
            }

            finally
            {
                Console.WriteLine("Press <Enter> to exit....");
                Console.ReadLine();
            }
        }

        public static void WriteObject(string fileName)
        {
            Console.WriteLine(
                "Creating a Person object and serializing it.");
            Person p1 = new Person("Zighetti", "Barbara", 101);
            FileStream writer = new FileStream(fileName, FileMode.Create);
            DataContractSerializer ser =
                new DataContractSerializer(typeof(Person));
            ser.WriteObject(writer, p1);
            writer.Close();
        }

        public static void ReadObject(string fileName)
        {
            Console.WriteLine("Deserializing an instance of the object.");
            FileStream fs = new FileStream(fileName,
            FileMode.Open);
            XmlDictionaryReader reader =
                XmlDictionaryReader.CreateTextReader(fs, new XmlDictionaryReaderQuotas());
            DataContractSerializer ser = new DataContractSerializer(typeof(Person));

            // Deserialize the data and read it from the instance.
            Person deserializedPerson =
                (Person)ser.ReadObject(reader, true);
            reader.Close();
            fs.Close();
            Console.WriteLine(String.Format("{0} {1}, ID: {2}",
            deserializedPerson.FirstName, deserializedPerson.LastName,
            deserializedPerson.ID));
        }
    }
' You must apply a DataContractAttribute or SerializableAttribute
' to a class to have it serialized by the DataContractSerializer.
<DataContract(Name := "Customer", [Namespace] := "http://www.contoso.com")>  _
Class Person
    Implements IExtensibleDataObject
    <DataMember()>  _
    Public FirstName As String
    <DataMember()>  _
    Public LastName As String
    <DataMember()>  _
    Public ID As Integer
    
    Public Sub New(ByVal newfName As String, ByVal newLName As String, ByVal newID As Integer) 
        FirstName = newfName
        LastName = newLName
        ID = newID
    End Sub 
    
    Private extensionData_Value As ExtensionDataObject
    
    Public Property ExtensionData() As ExtensionDataObject Implements _
       IExtensibleDataObject.ExtensionData
        Get
            Return extensionData_Value
        End Get
        Set
            extensionData_Value = value
        End Set
    End Property
End Class 


NotInheritable Public Class Test
    
    Private Sub New() 
    
    End Sub 
     
    Public Shared Sub Main() 
        Try
            WriteObject("DataContractSerializerExample.xml")
            ReadObject("DataContractSerializerExample.xml")
        
        Catch serExc As SerializationException
            Console.WriteLine("Serialization Failed")
            Console.WriteLine(serExc.Message)
        Catch exc As Exception
            Console.WriteLine("The serialization operation failed: {0} StackTrace: {1}", exc.Message, exc.StackTrace)
        
        Finally
            Console.WriteLine("Press <Enter> to exit....")
            Console.ReadLine()
        End Try
    End Sub 
    
    Public Shared Sub WriteObject(ByVal fileName As String) 
        Console.WriteLine("Creating a Person object and serializing it.")
        Dim p1 As New Person("Zighetti", "Barbara", 101)
        Dim writer As New FileStream(fileName, FileMode.Create)
        Dim ser As New DataContractSerializer(GetType(Person))
        ser.WriteObject(writer, p1)
        writer.Close()
    End Sub 

    Public Shared Sub ReadObject(ByVal fileName As String) 
        Console.WriteLine("Deserializing an instance of the object.")
        Dim fs As New FileStream(fileName, FileMode.Open)
        Dim reader As XmlDictionaryReader = _
            XmlDictionaryReader.CreateTextReader(fs, New XmlDictionaryReaderQuotas())
        Dim ser As New DataContractSerializer(GetType(Person))
        
        ' Deserialize the data and read it from the instance.
        Dim deserializedPerson As Person = CType(ser.ReadObject(reader, True), Person)
        reader.Close()
        fs.Close()
        Console.WriteLine(String.Format("{0} {1}, ID: {2}", deserializedPerson.FirstName, deserializedPerson.LastName, deserializedPerson.ID))
    End Sub 
End Class 

Remarques

Utilisez la classe DataContractSerializer pour sérialiser et désérialiser des instances d'un type dans un flux ou un document XML.Use the DataContractSerializer class to serialize and deserialize instances of a type into an XML stream or document. Par exemple, vous pouvez créer un type nommé Person avec des propriétés qui contiennent des données essentielles, telles qu'un nom et une adresse.For example, you can create a type named Person with properties that contain essential data, such as a name and address. Vous pouvez créer ensuite et manipuler une instance de la classe Person et écrire toutes ses valeurs de propriété dans un document XML en vue de récupération ultérieure, ou dans un flux XML pour un transport immédiat.You can then create and manipulate an instance of the Person class and write all of its property values in an XML document for later retrieval, or in an XML stream for immediate transport. Plus important, est DataContractSerializer utilisé pour sérialiser et désérialiser les données envoyées dans les messages Windows Communication Foundation (WCF).Most important, the DataContractSerializer is used to serialize and deserialize data sent in Windows Communication Foundation (WCF) messages. Appliquez l'attribut DataContractAttribute aux classes, et l'attribut DataMemberAttribute aux membres des classes pour spécifier les propriétés et les champs sérialisés.Apply the DataContractAttribute attribute to classes, and the DataMemberAttribute attribute to class members to specify properties and fields that are serialized.

Pour obtenir la liste des types qui peuvent être sérialisés, consultez types pris en charge par le sérialiseur de contrat de données.For a list of types that can be serialized, see Types Supported by the Data Contract Serializer.

Pour utiliser la classe DataContractSerializer, créez d'abord une instance d'une classe et un objet apte à écrire ou lire le format ; par exemple, une instance de la classe XmlDictionaryWriter.To use the DataContractSerializer, first create an instance of a class and an object appropriate to writing or reading the format; for example, an instance of the XmlDictionaryWriter. Appelez ensuite la méthode WriteObject pour rendre les données persistantes.Then call the WriteObject method to persist the data. Pour récupérer des données, créez un objet apte à lire le format de données (par exemple, une classe XmlDictionaryReader pour un document XML) et appelez la méthode ReadObject.To retrieve data, create an object appropriate to reading the data format (such as an XmlDictionaryReader for an XML document) and call the ReadObject method.

Pour plus d’informations sur l' DataContractSerializerutilisation de, consultez sérialisation et désérialisation.For more information about using the DataContractSerializer, see Serialization and Deserialization.

Vous pouvez définir le type d’un sérialiseur de contrat de données <à> l’aide de l’élément DataContractSerializer dans un fichier de configuration d’application cliente.You can set the type of a data contract serializer using the <dataContractSerializer> element in a client application configuration file.

Préparation de classes pour la sérialisation ou la désérialisationPreparing Classes for Serialization or Deserialization

La classe DataContractSerializer est utilisée en association avec les DataContractAttribute et DataMemberAttribute.The DataContractSerializer is used in combination with the DataContractAttribute and DataMemberAttribute classes. Pour préparer une classe à la sérialisation, appliquez DataContractAttribute à la classe.To prepare a class for serialization, apply the DataContractAttribute to the class. Pour chaque membre de la classe qui retourne des données que vous voulez sérialiser, appliquez DataMemberAttribute.For each member of the class that returns data that you want to serialize, apply the DataMemberAttribute. Vous pouvez sérialiser des champs et des propriétés, quelle que soit l'accessibilité : privés, protégés, internes, internes protégés ou publics.You can serialize fields and properties, regardless of accessibility: private, protected, internal, protected internal, or public.

Par exemple, votre schéma spécifie un Customer avec une propriété ID, mais vous possédez déjà une application existante qui utilise un type nommé Person avec une propriété Name.For example, your schema specifies a Customer with an ID property, but you already have an existing application that uses a type named Person with a Name property. Pour créer un type conforme au contrat, appliquez d'abord la classe DataContractAttribute à la classe.To create a type that conforms to the contract, first apply the DataContractAttribute to the class. Appliquez ensuite la classe DataMemberAttribute à chaque champ ou propriété que vous souhaitez sérialiser.Then apply the DataMemberAttribute to every field or property that you want to serialize.

Notes

Vous pouvez appliquer la classe DataMemberAttribute aux membres privés et publics.You can apply the DataMemberAttribute to both private and public members.

Le format final du code XML ne doit pas obligatoirement être le format texte.The final format of the XML need not be text. À la place, la classe DataContractSerializer écrit les données comme un jeu d'informations XML, qui vous permet d'écrire les données dans n'importe quel format reconnu par la classe XmlReader et XmlWriter.Instead, the DataContractSerializer writes the data as an XML infoset, which allows you to write the data to any format recognized by the XmlReader and XmlWriter. Il est recommandé d'utiliser les classes XmlDictionaryReader et XmlDictionaryWriter pour lire et écrire, car toutes deux sont optimisées pour l'utilisation de la classe DataContractSerializer.It is recommended that you use the XmlDictionaryReader and XmlDictionaryWriter classes to read and write, because both are optimized to work with the DataContractSerializer.

Si vous créez une classe qui a des champs ou des propriétés qui doivent être remplis avant la sérialisation ou la désérialisation, utilisez les attributs de rappel, comme décrit dans rappels de sérialisation avec tolérance de version.If you are creating a class that has fields or properties that must be populated before the serialization or deserialization occurs, use callback attributes, as described in Version-Tolerant Serialization Callbacks.

Ajout à la collection des types connusAdding to the Collection of Known Types

Lors de la sérialisation ou désérialisation d'un objet, il est nécessaire que le type soit « connu » de la classe DataContractSerializer.When serializing or deserializing an object, it is required that the type is "known" to the DataContractSerializer. Commencez en créant une instance d’une classe qui implémente IEnumerable<T> (comme List<T>) et en ajoutant les types connus à la collection.Begin by creating an instance of a class that implements IEnumerable<T> (such as List<T>) and adding the known types to the collection. Créez ensuite une instance de la classe DataContractSerializer à l'aide d'une des surcharges qui utilise l'interface IEnumerable<T> (par exemple, DataContractSerializer(Type, IEnumerable<Type>).Then create an instance of the DataContractSerializer using one of the overloads that takes the IEnumerable<T> (for example, DataContractSerializer(Type, IEnumerable<Type>).

Notes

Contrairement à d’autres types primitifs, la DateTimeOffset structure n’est pas un type connu par défaut, donc elle doit être ajoutée manuellement à la liste des types connus (consultez types connus du contrat de données).Unlike other primitive types, the DateTimeOffset structure is not a known type by default, so it must be manually added to the list of known types (see Data Contract Known Types).

Compatibilité ascendanteForward Compatibility

La classe DataContractSerializer comprend les contrats de données conçus pour être compatibles avec de futures versions du contrat.The DataContractSerializer understands data contracts that have been designed to be compatible with future versions of the contract. Les types de cette sorte implémentent l'interface IExtensibleDataObject.Such types implement the IExtensibleDataObject interface. L’interface présente la propriété ExtensionData qui retourne un objet ExtensionDataObject.The interface features the ExtensionData property that returns an ExtensionDataObject object. Pour plus d’informations, consultez Contrats de données compatibles avec des versions ultérieures.For more information, see Forward-Compatible Data Contracts.

Exécution en situation de confiance partielleRunning under Partial Trust

Lorsque vous instanciez l'objet cible pendant la désérialisation, la classe DataContractSerializer n'appelle pas le constructeur de l'objet cible.When instantiating the target object during deserialization, the DataContractSerializer does not call the constructor of the target object. Si vous créez un type [DataContract] qui est accessible à partir de la confiance partielle (autrement dit, s’il est public et dans un AllowPartiallyTrustedCallers assembly dont l’attribut est appliqué) et qui effectue des actions liées à la sécurité, vous devez savoir que le constructeur n’est pas nommés.If you author a [DataContract] type that is accessible from partial trust (that is, it is public and in an assembly that has the AllowPartiallyTrustedCallers attribute applied) and that performs some security-related actions, you must be aware that the constructor is not called. En particulier, les techniques suivantes ne fonctionnent pas:In particular, the following techniques do not work:

  • Si vous essayez de restreindre l’accès en confiance partielle en rendant le constructeur interne ou privé, ou en ajoutant un LinkDemand au constructeur, ni l’un ni l’autre n’ont d’effet pendant la désérialisation en confiance partielle.If you try to restrict partial trust access by making the constructor internal or private, or by adding a LinkDemand to the constructor -- neither of these have any effect during deserialization under partial trust.

  • Si vous codez la classe qui suppose que le constructeur a été exécuté, la classe peut se retrouver en état interne non valide qui est exploitable.If you code the class that assumes the constructor has run, the class may get into an invalid internal state that is exploitable.

Constructeurs

DataContractSerializer(Type) DataContractSerializer(Type) DataContractSerializer(Type) DataContractSerializer(Type)

Initialise une nouvelle instance de la classe DataContractSerializer pour sérialiser ou désérialiser un objet du type spécifié.Initializes a new instance of the DataContractSerializer class to serialize or deserialize an object of the specified type.

DataContractSerializer(Type, DataContractSerializerSettings) DataContractSerializer(Type, DataContractSerializerSettings) DataContractSerializer(Type, DataContractSerializerSettings) DataContractSerializer(Type, DataContractSerializerSettings)

Initialise une nouvelle instance de la classe DataContractSerializer pour sérialiser ou désérialiser un objet avec le type et les paramètres spécifiés.Initializes a new instance of the DataContractSerializer class to serialize or deserialize an object of the specified type and settings.

DataContractSerializer(Type, IEnumerable<Type>) DataContractSerializer(Type, IEnumerable<Type>) DataContractSerializer(Type, IEnumerable<Type>) DataContractSerializer(Type, IEnumerable<Type>)

Initialise une nouvelle instance de la classe DataContractSerializer pour sérialiser ou désérialiser un objet du type spécifié, et une collection de types connus pouvant être présents dans le graphique d'objets.Initializes a new instance of the DataContractSerializer class to serialize or deserialize an object of the specified type, and a collection of known types that may be present in the object graph.

DataContractSerializer(Type, IEnumerable<Type>, Int32, Boolean, Boolean, IDataContractSurrogate) DataContractSerializer(Type, IEnumerable<Type>, Int32, Boolean, Boolean, IDataContractSurrogate) DataContractSerializer(Type, IEnumerable<Type>, Int32, Boolean, Boolean, IDataContractSurrogate) DataContractSerializer(Type, IEnumerable<Type>, Int32, Boolean, Boolean, IDataContractSurrogate)

Initialise une nouvelle instance de la classe DataContractSerializer pour sérialiser ou désérialiser un objet du type spécifié.Initializes a new instance of the DataContractSerializer class to serialize or deserialize an object of the specified type. Cette méthode spécifie également une liste des types connus qui peuvent être présents dans le graphique d'objets, le nombre maximal d'éléments de graphique à sérialiser, les paramètres pour ignorer les données inattendues, s'il faut utiliser des constructions XML non standard pour conserver les données de référence d'objet dans le graphique, et un substitut pour la sérialisation personnalisée.This method also specifies a list of known types that may be present in the object graph, the maximum number of graph items to serialize, parameters to ignore unexpected data, whether to use non-standard XML constructs to preserve object reference data in the graph, and a surrogate for custom serialization.

DataContractSerializer(Type, IEnumerable<Type>, Int32, Boolean, Boolean, IDataContractSurrogate, DataContractResolver) DataContractSerializer(Type, IEnumerable<Type>, Int32, Boolean, Boolean, IDataContractSurrogate, DataContractResolver) DataContractSerializer(Type, IEnumerable<Type>, Int32, Boolean, Boolean, IDataContractSurrogate, DataContractResolver) DataContractSerializer(Type, IEnumerable<Type>, Int32, Boolean, Boolean, IDataContractSurrogate, DataContractResolver)

Initialise une nouvelle instance de la classe DataContractSerializer pour sérialiser ou désérialiser un objet du type spécifié.Initializes a new instance of the DataContractSerializer class to serialize or deserialize an object of the specified type. Cette méthode spécifie également une liste des types connus qui peuvent être présents dans le graphique d'objets, le nombre maximal d'éléments de graphique à sérialiser, les paramètres pour ignorer des données inattendues, s'il faut utiliser des constructions XML non standard pour conserver les données de référence d'objet dans le graphique, un substitut pour la sérialisation personnalisée, ainsi qu'une autre approche pour mapper des déclarations xsi:type au moment de l'exécution.This method also specifies a list of known types that may be present in the object graph, the maximum number of graph items to serialize, parameters to ignore unexpected data, whether to use non-standard XML constructs to preserve object reference data in the graph, a surrogate for custom serialization, and an alternative for mapping xsi:type declarations at run time.

DataContractSerializer(Type, String, String) DataContractSerializer(Type, String, String) DataContractSerializer(Type, String, String) DataContractSerializer(Type, String, String)

Initialise une nouvelle instance de la classe DataContractSerializer pour sérialiser ou désérialiser un objet du type spécifié à l'aide de l'élément racine et de l'espace de noms XML fournis.Initializes a new instance of the DataContractSerializer class to serialize or deserialize an object of the specified type using the supplied XML root element and namespace.

DataContractSerializer(Type, String, String, IEnumerable<Type>) DataContractSerializer(Type, String, String, IEnumerable<Type>) DataContractSerializer(Type, String, String, IEnumerable<Type>) DataContractSerializer(Type, String, String, IEnumerable<Type>)

Initialise une nouvelle instance de la classe DataContractSerializer pour sérialiser ou désérialiser un objet du type spécifié.Initializes a new instance of the DataContractSerializer class to serialize or deserialize an object of the specified type. Cette méthode spécifie également l'élément XML racine et l'espace de noms dans deux paramètres de chaîne ainsi qu'une liste des types connus pouvant être présents dans le graphique d'objets.This method also specifies the root XML element and namespace in two string parameters as well as a list of known types that may be present in the object graph.

DataContractSerializer(Type, String, String, IEnumerable<Type>, Int32, Boolean, Boolean, IDataContractSurrogate) DataContractSerializer(Type, String, String, IEnumerable<Type>, Int32, Boolean, Boolean, IDataContractSurrogate) DataContractSerializer(Type, String, String, IEnumerable<Type>, Int32, Boolean, Boolean, IDataContractSurrogate) DataContractSerializer(Type, String, String, IEnumerable<Type>, Int32, Boolean, Boolean, IDataContractSurrogate)

Initialise une nouvelle instance de la classe DataContractSerializer pour sérialiser ou désérialiser un objet du type spécifié.Initializes a new instance of the DataContractSerializer class to serialize or deserialize an object of the specified type. Cette méthode spécifie également une liste des types connus qui peuvent être présents dans le graphique d'objets, le nombre maximal d'éléments de graphique à sérialiser, les paramètres pour ignorer des données inattendues, s'il faut utiliser des constructions XML non standard pour conserver les données de référence d'objet dans le graphique, un substitut pour la sérialisation personnalisée, ainsi que l'élément et l'espace de noms XML qui incluent le contenu.This method also specifies a list of known types that may be present in the object graph, the maximum number of graph items to serialize, parameters to ignore unexpected data, whether to use non-standard XML constructs to preserve object reference data in the graph, a surrogate for custom serialization, and the XML element and namespace that contain the content.

DataContractSerializer(Type, String, String, IEnumerable<Type>, Int32, Boolean, Boolean, IDataContractSurrogate, DataContractResolver) DataContractSerializer(Type, String, String, IEnumerable<Type>, Int32, Boolean, Boolean, IDataContractSurrogate, DataContractResolver) DataContractSerializer(Type, String, String, IEnumerable<Type>, Int32, Boolean, Boolean, IDataContractSurrogate, DataContractResolver) DataContractSerializer(Type, String, String, IEnumerable<Type>, Int32, Boolean, Boolean, IDataContractSurrogate, DataContractResolver)

Initialise une nouvelle instance de la classe DataContractSerializer pour sérialiser ou désérialiser un objet du type spécifié.Initializes a new instance of the DataContractSerializer class to serialize or deserialize an object of the specified type. Cette méthode spécifie également une liste des types connus qui peuvent être présents dans le graphique d'objets, le nombre maximal d'éléments de graphique à sérialiser, les paramètres pour ignorer des données inattendues, s'il faut utiliser des constructions XML non standard pour conserver les données de référence d'objet dans le graphique, un substitut pour la sérialisation personnalisée, l'élément et l'espace de noms XML qui contient le contenu, ainsi qu'une autre approche pour mapper des déclarations xsi:type au moment de l'exécution.This method also specifies a list of known types that may be present in the object graph, the maximum number of graph items to serialize, parameters to ignore unexpected data, whether to use non-standard XML constructs to preserve object reference data in the graph, a surrogate for custom serialization, the XML element and namespace that contains the content, and an alternative for mapping xsi:type declarations at run time.

DataContractSerializer(Type, XmlDictionaryString, XmlDictionaryString) DataContractSerializer(Type, XmlDictionaryString, XmlDictionaryString) DataContractSerializer(Type, XmlDictionaryString, XmlDictionaryString) DataContractSerializer(Type, XmlDictionaryString, XmlDictionaryString)

Initialise une nouvelle instance de la classe DataContractSerializer pour sérialiser ou désérialiser un objet du type spécifié à l'aide de l'élément racine et de l'espace de noms XML spécifiés dans les paramètres de type XmlDictionaryString.Initializes a new instance of the DataContractSerializer class to serialize or deserialize an object of the specified type using the XML root element and namespace specified through the parameters of type XmlDictionaryString.

DataContractSerializer(Type, XmlDictionaryString, XmlDictionaryString, IEnumerable<Type>) DataContractSerializer(Type, XmlDictionaryString, XmlDictionaryString, IEnumerable<Type>) DataContractSerializer(Type, XmlDictionaryString, XmlDictionaryString, IEnumerable<Type>) DataContractSerializer(Type, XmlDictionaryString, XmlDictionaryString, IEnumerable<Type>)

Initialise une nouvelle instance de la classe DataContractSerializer pour sérialiser ou désérialiser un objet du type spécifié.Initializes a new instance of the DataContractSerializer class to serialize or deserialize an object of the specified type. Cette méthode spécifie également l'élément XML racine et l'espace de noms dans deux paramètres XmlDictionaryString ainsi qu'une liste de types connus pouvant être présents dans le graphique d'objets.This method also specifies the root XML element and namespace in two XmlDictionaryString parameters as well as a list of known types that may be present in the object graph.

DataContractSerializer(Type, XmlDictionaryString, XmlDictionaryString, IEnumerable<Type>, Int32, Boolean, Boolean, IDataContractSurrogate) DataContractSerializer(Type, XmlDictionaryString, XmlDictionaryString, IEnumerable<Type>, Int32, Boolean, Boolean, IDataContractSurrogate) DataContractSerializer(Type, XmlDictionaryString, XmlDictionaryString, IEnumerable<Type>, Int32, Boolean, Boolean, IDataContractSurrogate) DataContractSerializer(Type, XmlDictionaryString, XmlDictionaryString, IEnumerable<Type>, Int32, Boolean, Boolean, IDataContractSurrogate)

Initialise une nouvelle instance de la classe DataContractSerializer pour sérialiser ou désérialiser un objet du type spécifié.Initializes a new instance of the DataContractSerializer class to serialize or deserialize an object of the specified type. Cette méthode spécifie également une liste des types connus qui peuvent être présents dans le graphique d'objets, le nombre maximal d'éléments de graphique à sérialiser, les paramètres pour ignorer les données inattendues, s'il faut utiliser des constructions XML non standard pour conserver les données de référence d'objet dans le graphique, un substitut pour la sérialisation personnalisée, et les paramètres XmlDictionaryString qui spécifient l'élément et l'espace de noms XML qui contiennent le contenu.This method also specifies a list of known types that may be present in the object graph, the maximum number of graph items to serialize, parameters to ignore unexpected data, whether to use non-standard XML constructs to preserve object reference data in the graph, a surrogate for custom serialization, and parameters of XmlDictionaryString that specify the XML element and namespace that contain the content.

DataContractSerializer(Type, XmlDictionaryString, XmlDictionaryString, IEnumerable<Type>, Int32, Boolean, Boolean, IDataContractSurrogate, DataContractResolver) DataContractSerializer(Type, XmlDictionaryString, XmlDictionaryString, IEnumerable<Type>, Int32, Boolean, Boolean, IDataContractSurrogate, DataContractResolver) DataContractSerializer(Type, XmlDictionaryString, XmlDictionaryString, IEnumerable<Type>, Int32, Boolean, Boolean, IDataContractSurrogate, DataContractResolver) DataContractSerializer(Type, XmlDictionaryString, XmlDictionaryString, IEnumerable<Type>, Int32, Boolean, Boolean, IDataContractSurrogate, DataContractResolver)

Initialise une nouvelle instance de la classe DataContractSerializer pour sérialiser ou désérialiser un objet du type spécifié.Initializes a new instance of the DataContractSerializer class to serialize or deserialize an object of the specified type. Cette méthode spécifie également une liste des types connus qui peuvent être présents dans le graphique d'objets, le nombre maximal d'éléments de graphique à sérialiser, les paramètres pour ignorer des données inattendues, s'il faut utiliser des constructions XML non standard pour conserver les données de référence d'objet dans le graphique, un substitut pour la sérialisation personnalisée, les paramètres de XmlDictionaryString qui spécifient l'élément et l'espace de noms XML qui contient le contenu, ainsi qu'une autre approche pour mapper des déclarations xsi:type au moment de l'exécution.This method also specifies a list of known types that may be present in the object graph, the maximum number of graph items to serialize, parameters to ignore unexpected data, whether to use non-standard XML constructs to preserve object reference data in the graph, a surrogate for custom serialization, parameters of XmlDictionaryString that specify the XML element and namespace that contains the content, and an alternative for mapping xsi:type declarations at run time.

Propriétés

DataContractResolver DataContractResolver DataContractResolver DataContractResolver

Obtient le composant utilisé pour mapper dynamiquement les déclarations xsi:type aux types de contrat connus.Gets the component used to dynamically map xsi:type declarations to known contract types.

DataContractSurrogate DataContractSurrogate DataContractSurrogate DataContractSurrogate

Obtient un type de substitut capable d’étendre le processus de sérialisation ou de désérialisation.Gets a surrogate type that can extend the serialization or deserialization process.

IgnoreExtensionDataObject IgnoreExtensionDataObject IgnoreExtensionDataObject IgnoreExtensionDataObject

Obtient une valeur qui spécifie s'il faut ignorer les données fournies par une extension de la classe lors de la sérialisation ou la désérialisation de la classe.Gets a value that specifies whether to ignore data supplied by an extension of the class when the class is being serialized or deserialized.

KnownTypes KnownTypes KnownTypes KnownTypes

Obtient une collection des types pouvant être présents dans le graphique d'objets sérialisé à l'aide de cette instance de DataContractSerializer.Gets a collection of types that may be present in the object graph serialized using this instance of the DataContractSerializer.

MaxItemsInObjectGraph MaxItemsInObjectGraph MaxItemsInObjectGraph MaxItemsInObjectGraph

Obtient le nombre maximal d'éléments à sérialiser ou désérialiser dans un graphique d'objets.Gets the maximum number of items in an object graph to serialize or deserialize.

PreserveObjectReferences PreserveObjectReferences PreserveObjectReferences PreserveObjectReferences

Obtient une valeur qui spécifie s'il faut utiliser des constructions XML non standard pour conserver des données de référence d'objet.Gets a value that specifies whether to use non-standard XML constructs to preserve object reference data.

SerializeReadOnlyTypes SerializeReadOnlyTypes SerializeReadOnlyTypes SerializeReadOnlyTypes

Obtient une valeur qui spécifie si les types en lecture seule sont sérialisés.Gets a value that specifies whether read-only types are serialized.

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)

Détermine si la classe XmlDictionaryReader est positionnée sur un objet pouvant être désérialisé.Determines whether the XmlDictionaryReader is positioned on an object that can be deserialized.

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

Détermine si la classe XmlReader est positionnée sur un objet pouvant être désérialisé.Determines whether the XmlReader is positioned on an object that can be deserialized.

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.

(Inherited from XmlObjectSerializer)
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.

(Inherited from XmlObjectSerializer)
ReadObject(XmlDictionaryReader, Boolean) ReadObject(XmlDictionaryReader, Boolean) ReadObject(XmlDictionaryReader, Boolean) ReadObject(XmlDictionaryReader, Boolean)

Lit le flux XML avec une classe XmlDictionaryReader et retourne l'objet désérialisé. Il spécifie également si un contrôle doit être effectué pour vérifier le nom de l'objet avant de lire sa valeur.Reads the XML stream with an XmlDictionaryReader and returns the deserialized object, and also specifies whether a check is made to verify the object name before reading its value.

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

Lit un document XML ou un flux de document et retourne l'objet désérialisé.Reads an XML document or document stream and returns the deserialized object. La méthode contient un paramètre pour spécifier si le nom d'objet est vérifié et validé, et un programme de résolution pour le mappage de déclarations xsi:type au moment de l'exécution.The method includes a parameter to specify whether the object name is verified is validated, and a resolver for mapping xsi:type declarations at runtime.

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

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

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

Lit le flux XML avec une classe XmlReader et retourne l'objet désérialisé. Il spécifie également si un contrôle doit être effectué pour vérifier le nom de l'objet avant de lire sa valeur.Reads the XML stream with an XmlReader and returns the deserialized object, and also specifies whether a check is made to verify the object name before reading its value.

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 l'élément XML de fermeture à l'aide d'une classe XmlDictionaryWriter.Writes the closing XML element using an XmlDictionaryWriter.

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

Écrit l'élément XML de fermeture à l'aide d'une classe XmlWriter.Writes the closing XML element using 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.

(Inherited from XmlObjectSerializer)
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.

(Inherited from XmlObjectSerializer)
WriteObject(XmlDictionaryWriter, Object, DataContractResolver) WriteObject(XmlDictionaryWriter, Object, DataContractResolver) WriteObject(XmlDictionaryWriter, Object, DataContractResolver) WriteObject(XmlDictionaryWriter, Object, DataContractResolver)

Écrit toutes les données d'objet (élément XML de début, contenu et élément englobant) dans un document ou un flux XML à l'aide du XmlDictionaryWriter spécifié.Writes all the object data (starting XML element, content, and enclosing element) to an XML document or stream using the specified XmlDictionaryWriter. La méthode inclut un programme de résolution pour le mappage de déclarations xsi:type au moment de l'exécution.The method includes a resolver for mapping xsi:type declarations at runtime.

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

Écrit toutes les données d'objet (élément XML de début, de contenu et de fermeture) dans un document ou un flux XML avec une classe XmlWriter.Writes all the object data (starting XML element, content, and closing element) to an XML document or stream with an XmlWriter.

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

Écrit le contenu XML à l'aide d'une classe XmlDictionaryWriter.Writes the XML content using an XmlDictionaryWriter.

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

Écrit le contenu XML à l'aide d'une classe XmlWriter.Writes the XML content using an XmlWriter.

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

Écrit l'élément XML d'ouverture à l'aide d'une classe XmlDictionaryWriter.Writes the opening XML element using an XmlDictionaryWriter.

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

Écrit l'élément XML d'ouverture à l'aide d'une classe XmlWriter.Writes the opening XML element using an XmlWriter.

Méthodes d’extension

GetSerializationSurrogateProvider(DataContractSerializer) GetSerializationSurrogateProvider(DataContractSerializer) GetSerializationSurrogateProvider(DataContractSerializer) GetSerializationSurrogateProvider(DataContractSerializer)

Retourne le substitut de fournisseur de sérialisation pour ce sérialiseur.Returns the surrogate serialization provider for this serializer.

SetSerializationSurrogateProvider(DataContractSerializer, ISerializationSurrogateProvider) SetSerializationSurrogateProvider(DataContractSerializer, ISerializationSurrogateProvider) SetSerializationSurrogateProvider(DataContractSerializer, ISerializationSurrogateProvider) SetSerializationSurrogateProvider(DataContractSerializer, ISerializationSurrogateProvider)

Spécifie un fournisseur de sérialisation de substitution pour ce DataContractSerializer.Specifies a surrogate serialization provider for this DataContractSerializer.

S’applique à

Cohérence de thread

Les instances de cette classe sont thread-safe, sauf lorsque l’instance est utilisée avec une IDataContractSurrogate implémentation DataContractResolverde ou.Instances of this class are thread safe except when the instance is used with an implementation of the IDataContractSurrogate or DataContractResolver.

Voir aussi