DataContractSerializer DataContractSerializer DataContractSerializer DataContractSerializer Class

Definición

Serializa y deserializa una instancia de un tipo en un flujo o en un documento XML utilizando un contrato de datos proporcionado.Serializes and deserializes an instance of a type into an XML stream or document using a supplied data contract. Esta clase no puede heredarse.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
Herencia
DataContractSerializerDataContractSerializerDataContractSerializerDataContractSerializer

Ejemplos

El código de ejemplo siguiente muestra un tipo denominado Person que es serializado por DataContractSerializer.The following example code shows a type named Person that is serialized by the DataContractSerializer. El atributo DataContractAttribute se aplica a la clase y DataMemberAttribute se aplica a los miembros para indicar a DataContractSerializer qué debe serializar.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 

Comentarios

Utilice la clase DataContractSerializer para serializar y deserializar instancias de un tipo en un flujo o en un documento XML.Use the DataContractSerializer class to serialize and deserialize instances of a type into an XML stream or document. Por ejemplo, puede crear un tipo denominado Person con propiedades que contienen datos esenciales, como un nombre y una dirección.For example, you can create a type named Person with properties that contain essential data, such as a name and address. A continuación puede crear y manipular una instancia de la clase Person y escribir todos sus valores de propiedad en un documento XML para recuperarlo posteriormente o en una secuencia XML para su transporte inmediato.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. Lo más importante DataContractSerializer es que se usa para serializar y deserializar los datos enviados en mensajes de Windows Communication Foundation (WCF).Most important, the DataContractSerializer is used to serialize and deserialize data sent in Windows Communication Foundation (WCF) messages. Aplique el atributo DataContractAttribute a las clases y el atributo DataMemberAttribute a los miembros de clase para especificar las propiedades y los campos que se serializan.Apply the DataContractAttribute attribute to classes, and the DataMemberAttribute attribute to class members to specify properties and fields that are serialized.

Para obtener una lista de tipos que se pueden serializar, consulte tipos admitidos por el serializador de contrato de datos.For a list of types that can be serialized, see Types Supported by the Data Contract Serializer.

Para utilizar DataContractSerializer, cree primero una instancia de una clase y un objeto adecuado para escribir o leer el formato; por ejemplo, una instancia de 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. A continuación, llame al método WriteObject para conservar los datos.Then call the WriteObject method to persist the data. Para recuperar los datos, cree un objeto adecuado para leer el formato de datos (como un XmlDictionaryReader para un documento XML) y llame al método 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.

Para obtener más información sobre el DataContractSerializeruso de, vea serialización ydeserialización.For more information about using the DataContractSerializer, see Serialization and Deserialization.

Puede establecer el tipo de un serializador de contrato de datos mediante <el> elemento dataContractSerializer en un archivo de configuración de la aplicación cliente.You can set the type of a data contract serializer using the <dataContractSerializer> element in a client application configuration file.

Preparación de clases para serialización o deserializaciónPreparing Classes for Serialization or Deserialization

DataContractSerializer se utiliza en combinación con las clases DataContractAttribute y DataMemberAttribute.The DataContractSerializer is used in combination with the DataContractAttribute and DataMemberAttribute classes. Para preparar una clase para la serialización, aplique DataContractAttribute a la clase.To prepare a class for serialization, apply the DataContractAttribute to the class. Para cada miembro de la clase que devuelve datos que desea serializar, aplique DataMemberAttribute.For each member of the class that returns data that you want to serialize, apply the DataMemberAttribute. Puede serializar campos y propiedades sin tener en cuenta la accesibilidad: privado, protegido, interno, interno protegido o público.You can serialize fields and properties, regardless of accessibility: private, protected, internal, protected internal, or public.

Por ejemplo, su esquema especifica un Customer con una propiedad ID, pero ya tiene una aplicación existente que utiliza un tipo denominado Person con una propiedad 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. Para crear un tipo que cumple el contrato, primero aplique DataContractAttribute a la clase.To create a type that conforms to the contract, first apply the DataContractAttribute to the class. A continuación, aplique DataMemberAttribute a cada campo o propiedad que desea serializar.Then apply the DataMemberAttribute to every field or property that you want to serialize.

Nota

Puede aplicar DataMemberAttribute a los miembros privados y públicos.You can apply the DataMemberAttribute to both private and public members.

El formato final del XML no tiene por qué ser texto.The final format of the XML need not be text. Al contrario, DataContractSerializer escribe los datos como conjunto de información de XML, lo que le permite escribir los datos en cualquier formato reconocido por XmlReader y 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. Se recomienda que utilice las clases XmlDictionaryReader y XmlDictionaryWriter para leer y escribir porque ambas están optimizadas para trabajar con 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 va a crear una clase que tiene campos o propiedades que se deben rellenar antes de que se produzca la serialización o la deserialización, utilice los atributos de devolución de llamada, tal y como se describe en devoluciones de llamada de serialización tolerante a versiones.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.

Agregar a la colección de tipos conocidosAdding to the Collection of Known Types

Cuando se serializa o deserializa un objeto, se requiere que el tipo sea "conocido" por DataContractSerializer.When serializing or deserializing an object, it is required that the type is "known" to the DataContractSerializer. Comience creando una instancia de una clase que implemente IEnumerable<T> (como List<T>) y agregando los tipos conocidos a la colección.Begin by creating an instance of a class that implements IEnumerable<T> (such as List<T>) and adding the known types to the collection. A continuación, cree una instancia de DataContractSerializer utilizando una de las sobrecargas que toma IEnumerable<T> (por ejemplo, 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>).

Nota

A diferencia de otros tipos primitivos DateTimeOffset , la estructura no es un tipo conocido de forma predeterminada, por lo que debe agregarse manualmente a la lista de tipos conocidos (consulte Data Contract known Types).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).

Compatibilidad con versiones posterioresForward Compatibility

DataContractSerializer entiende contratos de datos que se han diseñado para ser compatibles con versiones futuras del contrato.The DataContractSerializer understands data contracts that have been designed to be compatible with future versions of the contract. Tales tipos implementan la interfaz IExtensibleDataObject.Such types implement the IExtensibleDataObject interface. La interfaz contiene la propiedad ExtensionData que devuelve un objeto ExtensionDataObject.The interface features the ExtensionData property that returns an ExtensionDataObject object. Para obtener más información, vea Forward-Compatible Data Contracts (Contratos de datos compatibles con el reenvío).For more information, see Forward-Compatible Data Contracts.

Ejecutar bajo confianza parcialRunning under Partial Trust

Al crear instancias del objeto de destino durante la deserialización, DataContractSerializer no llama al constructor del objeto de destino.When instantiating the target object during deserialization, the DataContractSerializer does not call the constructor of the target object. Si crea un tipo [DataContract] que es accesible desde la confianza parcial (es decir, es público y en un ensamblado que tiene aplicado el AllowPartiallyTrustedCallers atributo) y que realiza algunas acciones relacionadas con la seguridad, debe tener en cuenta que el constructor no es voque.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 particular, las técnicas siguientes no funcionan:In particular, the following techniques do not work:

  • Durante la deserialización bajo confianza parcial, intentar restringir el acceso de confianza parcial haciendo el constructor interno o privado o agregando LinkDemand al constructor no tendrá ningún efecto.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 codifica la clase que supone que el constructor se ha ejecutado, la clase puede entrar en un estado interno no válido que es explotable.If you code the class that assumes the constructor has run, the class may get into an invalid internal state that is exploitable.

Constructores

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

Inicializa una nueva instancia de la clase DataContractSerializer para serializar o deserializar un objeto del tipo especificado.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)

Inicializa una nueva instancia de la clase DataContractSerializer para serializar o deserializar un objeto del tipo y configuración especificados.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>)

Inicializa una nueva instancia de la clase DataContractSerializer para serializar o deserializar un objeto del tipo especificado y una colección de tipos conocidos que pueden encontrarse en el gráfico de objetos.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)

Inicializa una nueva instancia de la clase DataContractSerializer para serializar o deserializar un objeto del tipo especificado.Initializes a new instance of the DataContractSerializer class to serialize or deserialize an object of the specified type. Este método también especifica una lista de tipos conocidos que pueden encontrarse en el gráfico de objetos, el número máximo de elementos de gráfico a serializar, parámetros para omitir los datos inesperados, si utilizar construcciones XML no estándar para conservar los datos de referencia a objeto en el gráfico, y un suplente para la serialización personalizada.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)

Inicializa una nueva instancia de la clase DataContractSerializer para serializar o deserializar un objeto del tipo especificado.Initializes a new instance of the DataContractSerializer class to serialize or deserialize an object of the specified type. Este método también especifica una lista de tipos conocidos que pueden encontrarse en el gráfico de objetos, el número máximo de elementos de gráfico a serializar, parámetros para omitir los datos inesperados, si usar construcciones XML no estándar para conservar los datos de referencia a objeto en el gráfico, un suplente para la serialización personalizada, y una alternativa para asignar las declaraciones xsi:type en tiempo de ejecución.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)

Inicializa una nueva instancia de la clase DataContractSerializer para serializar o deserializar un objeto del tipo especificado utilizando el elemento raíz y el espacio de nombres XML proporcionados.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>)

Inicializa una nueva instancia de la clase DataContractSerializer para serializar o deserializar un objeto del tipo especificado.Initializes a new instance of the DataContractSerializer class to serialize or deserialize an object of the specified type. Este método también especifica el elemento raíz y el espacio de nombres XML en dos parámetros de cadena así como una lista de tipos conocidos que pueden encontrarse en el gráfico de objetos.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)

Inicializa una nueva instancia de la clase DataContractSerializer para serializar o deserializar un objeto del tipo especificado.Initializes a new instance of the DataContractSerializer class to serialize or deserialize an object of the specified type. Este método también especifica una lista de tipos conocidos que pueden encontrarse en el gráfico de objetos, el número máximo de elementos de gráfico a serializar, parámetros para omitir los datos inesperados, si utilizar construcciones XML no estándar para conservar los datos de referencia a objeto en el gráfico, un suplente para la serialización personalizada, así como el elemento y el espacio de nombres XML que incluyen el contenido.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)

Inicializa una nueva instancia de la clase DataContractSerializer para serializar o deserializar un objeto del tipo especificado.Initializes a new instance of the DataContractSerializer class to serialize or deserialize an object of the specified type. Este método también especifica una lista de tipos conocidos que pueden encontrarse en el gráfico de objetos, el número máximo de elementos de gráfico a serializar, parámetros para omitir los datos inesperados, si usar construcciones XML no estándar para conservar los datos de referencia a objeto en el gráfico, un suplente para la serialización personalizada, el elemento XML y el espacio de nombres que incluye el contenido y una alternativa para asignar las declaraciones xsi:type en tiempo de ejecución.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)

Inicializa una nueva instancia de la clase DataContractSerializer para serializar o deserializar un objeto del tipo especificado utilizando el elemento raíz XML y el espacio de nombres especificados mediante los parámetros del tipo 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>)

Inicializa una nueva instancia de la clase DataContractSerializer para serializar o deserializar un objeto del tipo especificado.Initializes a new instance of the DataContractSerializer class to serialize or deserialize an object of the specified type. Este método también especifica el elemento raíz y el espacio de nombres XML en dos parámetros XmlDictionaryString así como una lista de tipos conocidos que pueden encontrarse en el gráfico de objetos.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)

Inicializa una nueva instancia de la clase DataContractSerializer para serializar o deserializar un objeto del tipo especificado.Initializes a new instance of the DataContractSerializer class to serialize or deserialize an object of the specified type. Este método también especifica una lista de tipos conocidos que pueden encontrarse en el gráfico de objetos, el número máximo de elementos de gráfico a serializar, parámetros para omitir los datos inesperados, si utilizar construcciones XML no estándar para conservar los datos de referencia a objeto en el gráfico, un suplente para la serialización personalizada y parámetros de XmlDictionaryString que especifican el elemento y el espacio de nombres XML que incluyen el contenido.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)

Inicializa una nueva instancia de la clase DataContractSerializer para serializar o deserializar un objeto del tipo especificado.Initializes a new instance of the DataContractSerializer class to serialize or deserialize an object of the specified type. Este método también especifica una lista de tipos conocidos que pueden encontrarse en el gráfico de objetos, el número máximo de elementos de gráfico a serializar, parámetros para omitir los datos inesperados, si usar construcciones XML no estándar para conservar los datos de referencia a objeto en el gráfico, un suplente para la serialización personalizada, parámetros de XmlDictionaryString que especifican el elemento XML y el espacio de nombres que incluye el contenido y una alternativa para asignar las declaraciones xsi:type en tiempo de ejecución.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.

Propiedades

DataContractResolver DataContractResolver DataContractResolver DataContractResolver

Obtiene el componente utilizado para asignar dinámicamente las declaraciones xsi:type a los tipos de contrato conocidos.Gets the component used to dynamically map xsi:type declarations to known contract types.

DataContractSurrogate DataContractSurrogate DataContractSurrogate DataContractSurrogate

Obtiene un tipo de suplente que puede extender el proceso de serialización o deserialización.Gets a surrogate type that can extend the serialization or deserialization process.

IgnoreExtensionDataObject IgnoreExtensionDataObject IgnoreExtensionDataObject IgnoreExtensionDataObject

Obtiene un valor que especifica si omitir datos proporcionados por una extensión de la clase cuando la clase se serializa o deserializa.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

Obtiene una colección de tipos que se pueden encontrarse en el gráfico de objetos serializado utilizando esta instancia 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

Obtiene el número máximo de elementos de un gráfico de objetos que se van a serializar o deserializar.Gets the maximum number of items in an object graph to serialize or deserialize.

PreserveObjectReferences PreserveObjectReferences PreserveObjectReferences PreserveObjectReferences

Obtiene un valor que especifica si utilizar construcciones XML no estándar para conservar los datos de referencia al objeto.Gets a value that specifies whether to use non-standard XML constructs to preserve object reference data.

SerializeReadOnlyTypes SerializeReadOnlyTypes SerializeReadOnlyTypes SerializeReadOnlyTypes

Obtiene un valor que especifica si los tipos de solo lectura se serializan.Gets a value that specifies whether read-only types are serialized.

Métodos

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

Determina si el objeto especificado es igual al objeto actual.Determines whether the specified object is equal to the current object.

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

Sirve como la función hash predeterminada.Serves as the default hash function.

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

Obtiene el Type de la instancia actual.Gets the Type of the current instance.

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

Determina si XmlDictionaryReader se coloca en un objeto que se puede deserializar.Determines whether the XmlDictionaryReader is positioned on an object that can be deserialized.

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

Determina si XmlReader se coloca en un objeto que se puede deserializar.Determines whether the XmlReader is positioned on an object that can be deserialized.

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

Crea una copia superficial del objeto Object actual.Creates a shallow copy of the current Object.

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

Lee la secuencia o el documento XML con Stream y devuelve el objeto deserializado.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)

Lee el documento o la secuencia XML con XmlDictionaryReader y devuelve el objeto deserializado.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)

Lee la secuencia XML con XmlDictionaryReader y devuelve el objeto deserializado y también especifica si se realiza una comprobación para comprobar el nombre de objeto antes de leer su valor.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)

Lee un documento o secuencia del documento XML y devuelve el objeto deserializado.Reads an XML document or document stream and returns the deserialized object. El método incluye un parámetro para especificar si se comprueba el nombre de objeto se valida y una resolución para asignar las declaraciones xsi:type en tiempo de ejecución.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)

Lee el flujo XML con XmlReader y devuelve el objeto deserializado.Reads the XML stream with an XmlReader and returns the deserialized object.

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

Lee la secuencia XML con XmlReader y devuelve el objeto deserializado y también especifica si se realiza una comprobación para comprobar el nombre de objeto antes de leer su valor.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()

Devuelve una cadena que representa el objeto actual.Returns a string that represents the current object.

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

Escribe el elemento XML de cierre mediante XmlDictionaryWriter.Writes the closing XML element using an XmlDictionaryWriter.

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

Escribe el elemento XML de cierre mediante XmlWriter.Writes the closing XML element using an XmlWriter.

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

Escribe el contenido completo (inicio, contenido y fin) del objeto en el documento o la secuencia XML con el Streamespecificado.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)

Escribe el contenido completo (inicio, contenido y fin) del objeto en el documento o la secuencia XML con el XmlDictionaryWriterespecificado.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)

Escribe todos los datos de objeto (elemento XML inicial, contenido y elemento envolvente) en un documento o secuencia XML usando el XmlDictionaryWriter especificado.Writes all the object data (starting XML element, content, and enclosing element) to an XML document or stream using the specified XmlDictionaryWriter. El método incluye una resolución para asignar las declaraciones xsi:type en tiempo de ejecución.The method includes a resolver for mapping xsi:type declarations at runtime.

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

Escribe todos los datos de objeto (elemento XML inicial, contenido y elemento de cierre) en un documento o secuencia XML con 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)

Escribe el contenido XML mediante XmlDictionaryWriter.Writes the XML content using an XmlDictionaryWriter.

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

Escribe el contenido XML mediante XmlWriter.Writes the XML content using an XmlWriter.

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

Escribe el elemento XML de apertura mediante XmlDictionaryWriter.Writes the opening XML element using an XmlDictionaryWriter.

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

Escribe el elemento XML de apertura mediante XmlWriter.Writes the opening XML element using an XmlWriter.

Métodos de extensión

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

Devuelve el proveedor de serialización suplente para este serializador.Returns the surrogate serialization provider for this serializer.

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

Especifica un proveedor de serialización suplente para este elemento DataContractSerializer.Specifies a surrogate serialization provider for this DataContractSerializer.

Se aplica a

Seguridad para subprocesos

Las instancias de esta clase son seguras para subprocesos excepto cuando la instancia se utiliza con IDataContractSurrogate una DataContractResolverimplementación de o.Instances of this class are thread safe except when the instance is used with an implementation of the IDataContractSurrogate or DataContractResolver.

Consulte también: