DataContractSerializer DataContractSerializer DataContractSerializer DataContractSerializer Class

Definicja

Serializuje i deserializuje wystąpienia typu do strumień XML lub dokumentu za pomocą kontraktu danych.Serializes and deserializes an instance of a type into an XML stream or document using a supplied data contract. Klasa ta nie może być dziedziczona.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
Dziedziczenie
DataContractSerializerDataContractSerializerDataContractSerializerDataContractSerializer

Przykłady

Poniższy przykład kodu pokazuje typ o nazwie Person , jest serializowany przez DataContractSerializer.The following example code shows a type named Person that is serialized by the DataContractSerializer. DataContractAttribute Atrybut jest stosowany do klasy, a DataMemberAttribute jest stosowany do elementów członkowskich w celu poinstruowania DataContractSerializer co do serializacji.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 

Uwagi

Użyj DataContractSerializer klasy do serializacji i deserializacji wystąpienia typu do strumień XML lub dokumentu.Use the DataContractSerializer class to serialize and deserialize instances of a type into an XML stream or document. Na przykład można utworzyć typu o nazwie Person z właściwościami, które zawierają istotne dane, takie jak nazwa i adres.For example, you can create a type named Person with properties that contain essential data, such as a name and address. Można tworzyć i modyfikować wystąpienie Person klasy i zapisywanie wszystkich wartości właściwości, w dokumencie XML do pobierania nowszych lub w strumień XML do natychmiastowego transportu.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. Najważniejszą DataContractSerializer służy do serializacji i deserializacji danych przesyłanych w komunikatach usługi Windows Communication Foundation (WCF).Most important, the DataContractSerializer is used to serialize and deserialize data sent in Windows Communication Foundation (WCF) messages. Zastosuj DataContractAttribute atrybutu klasy, a DataMemberAttribute atrybutu do składowych klasy, aby określić właściwości i pola, które są serializowane.Apply the DataContractAttribute attribute to classes, and the DataMemberAttribute attribute to class members to specify properties and fields that are serialized.

Aby uzyskać listę typów, które może być Zserializowany, zobacz typy obsługiwane przez serializator kontraktu danych.For a list of types that can be serialized, see Types Supported by the Data Contract Serializer.

Aby użyć DataContractSerializer, najpierw utwórz wystąpienie klasy i obiekt odpowiednie wpisywanie lub odczytywanie formatu; na przykład wystąpienie 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. Następnie wywołaj WriteObject metodę, aby zachować dane.Then call the WriteObject method to persist the data. Do pobierania danych, Utwórz obiekt odpowiednie do odczytywania format danych (takich jak XmlDictionaryReader dokumentu XML) i wywołać ReadObject metody.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.

Aby uzyskać więcej informacji o korzystaniu z DataContractSerializer, zobacz serializacji i deserializacji.For more information about using the DataContractSerializer, see Serialization and Deserialization.

Możesz ustawić typ serializator kontraktu danych za pomocą <dataContractSerializer> elementu w pliku konfiguracji aplikacji klienta.You can set the type of a data contract serializer using the <dataContractSerializer> element in a client application configuration file.

Przygotowywanie do serializacji lub deserializacji klasPreparing Classes for Serialization or Deserialization

DataContractSerializer Jest używany w połączeniu z DataContractAttribute i DataMemberAttribute klasy.The DataContractSerializer is used in combination with the DataContractAttribute and DataMemberAttribute classes. Aby przygotować klasę do serializacji, zastosuj DataContractAttribute do klasy.To prepare a class for serialization, apply the DataContractAttribute to the class. Dla każdego elementu członkowskiego klasy, która zwraca dane przeznaczone do serializacji, zastosuj DataMemberAttribute.For each member of the class that returns data that you want to serialize, apply the DataMemberAttribute. Może wykonywać serializację pola i właściwości, niezależnie od tego, w ułatwienia dostępu: prywatnych, chronionych wewnętrznych chronione wewnętrznego lub publicznego.You can serialize fields and properties, regardless of accessibility: private, protected, internal, protected internal, or public.

Na przykład określa schematu Customer z ID właściwości, ale masz już istniejącą aplikację, która korzysta z typu o nazwie Person z Name właściwości.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. Aby utworzyć typ, który jest zgodny z umowy, należy najpierw zastosować DataContractAttribute do klasy.To create a type that conforms to the contract, first apply the DataContractAttribute to the class. Następnie Zastosuj DataMemberAttribute do każdego pola lub właściwości przewidzianej do serializacji.Then apply the DataMemberAttribute to every field or property that you want to serialize.

Uwaga

Można zastosować DataMemberAttribute do publicznych i prywatnych elementów członkowskich.You can apply the DataMemberAttribute to both private and public members.

Ostateczny format XML nie musi być tekstu.The final format of the XML need not be text. Zamiast tego DataContractSerializer zapisuje dane w postaci zestaw informacji XML, dzięki czemu można zapisywać dane w dowolnym formacie rozpoznawanym przez XmlReader i 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. Zaleca się, że używasz XmlDictionaryReader i XmlDictionaryWriter klasy do odczytu i zapisu, ponieważ oba są zoptymalizowane do pracy z 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.

Jeśli tworzysz klasę, która ma pola lub właściwości, które muszą być wypełnione przed serializacji lub deserializacji wystąpienia, należy użyć atrybutów wywołania zwrotnego, zgodnie z opisem w wywołania zwrotne serializacji z tolerancją dla wersji.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.

Dodawanie do kolekcji znanych typówAdding to the Collection of Known Types

Podczas serializacji lub deserializacji obiektu, jest wymagany, typ to "znane" do DataContractSerializer.When serializing or deserializing an object, it is required that the type is "known" to the DataContractSerializer. Rozpocznij od utworzenia wystąpienia klasy, która implementuje IEnumerable<T> (takie jak List<T>) i dodawanie znanych typów do kolekcji.Begin by creating an instance of a class that implements IEnumerable<T> (such as List<T>) and adding the known types to the collection. Następnie utwórz wystąpienie obiektu DataContractSerializer przy użyciu jednego z przeciążeń, które przyjmuje IEnumerable<T> (na przykład 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>).

Uwaga

W przeciwieństwie do innych typów pierwotnych DateTimeOffset struktura nie jest znany typ domyślnie, dlatego należy ręcznie dodać do listy znanych typów (zobacz znane typy kontraktu danych).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).

Zgodność z nowszymi wersjamiForward Compatibility

DataContractSerializer Rozumie kontraktów danych, które zostały zaprojektowane, aby był zgodny z przyszłych wersji kontraktu.The DataContractSerializer understands data contracts that have been designed to be compatible with future versions of the contract. Takie typy implementują IExtensibleDataObject interfejsu.Such types implement the IExtensibleDataObject interface. Funkcje interfejsu ExtensionData właściwość, która zwraca ExtensionDataObject obiektu.The interface features the ExtensionData property that returns an ExtensionDataObject object. Aby uzyskać więcej informacji, zobacz kontrakty danych zgodne.For more information, see Forward-Compatible Data Contracts.

Uruchamianie w częściowej relacji zaufaniaRunning under Partial Trust

Podczas tworzenia wystąpienia obiektu docelowego podczas deserializacji DataContractSerializer nie wywołać konstruktora obiektu docelowego.When instantiating the target object during deserialization, the DataContractSerializer does not call the constructor of the target object. Jeśli tworzysz [DataContract] typu, który jest dostępny w częściowej relacji zaufania (oznacza to, nie jest publiczny, a w zestawie, który ma AllowPartiallyTrustedCallers zastosowany) i który wykonuje określone akcje związane z zabezpieczeniami, należy pamiętać, Konstruktor nie jest wywoływana.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. W szczególności następujące techniki nie działają:In particular, the following techniques do not work:

  • Jeśli zostanie podjęta próba ograniczać częściowej relacji zaufania, wprowadzając konstruktora wewnętrznego lub prywatnego lub dodając LinkDemand do konstruktora — oba te zostały uwzględnione podczas deserializacji w częściowej relacji zaufania.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.

  • Jeśli kod jest klasa, która przyjęto założenie, że uruchomieniu konstruktora, klasa może wystąpić w nieprawidłowy stan wewnętrzny, który jest kończona.If you code the class that assumes the constructor has run, the class may get into an invalid internal state that is exploitable.

Konstruktory

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

Inicjuje nowe wystąpienie klasy DataContractSerializer klasy do serializacji lub deserializacji obiektu określonego typu.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)

Inicjuje nowe wystąpienie klasy DataContractSerializer klasy do serializacji lub deserializacji obiektu określonego typu i ustawień.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>)

Inicjuje nowe wystąpienie klasy DataContractSerializer klasy do serializacji lub deserializacji obiektu określonego typu i kolekcji znanych typów, które mogą być obecne na grafie obiektu.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)

Inicjuje nowe wystąpienie klasy DataContractSerializer klasy do serializacji lub deserializacji obiektu określonego typu.Initializes a new instance of the DataContractSerializer class to serialize or deserialize an object of the specified type. Ta metoda określa również listę znanych typów, które mogą być obecne na grafie obiektu maksymalną liczbę elementów wykresu, można serializować parametrów, aby zignorować nieoczekiwane dane, czy można użyć niestandardowego kodu XML konstrukcji, aby zachować dane odwołanie do obiektu na wykresie i substytut dla niestandardowej serializacji.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)

Inicjuje nowe wystąpienie klasy DataContractSerializer klasy do serializacji lub deserializacji obiektu określonego typu.Initializes a new instance of the DataContractSerializer class to serialize or deserialize an object of the specified type. Ta metoda określa również listę znanych typów, które mogą być obecne na grafie obiektu maksymalną liczbę elementów wykresu, można serializować parametrów, aby zignorować nieoczekiwane dane, czy można użyć niestandardowego kodu XML konstrukcji, aby zachować dane odwołanie do obiektu na wykresie zastępcze dla niestandardowej serializacji i alternatywę dla mapowania xsi:type deklaracje w czasie wykonywania.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)

Inicjuje nowe wystąpienie klasy DataContractSerializer klasy do serializacji lub deserializacji obiektu określonego typu przy użyciu podanych element główny XML i przestrzeni nazw.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>)

Inicjuje nowe wystąpienie klasy DataContractSerializer klasy do serializacji lub deserializacji obiektu określonego typu.Initializes a new instance of the DataContractSerializer class to serialize or deserialize an object of the specified type. Ta metoda określa również element główny XML i przestrzeni nazw w dwoma parametrami, a także listę znanych typów, które mogą być obecne na grafie obiektu.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)

Inicjuje nowe wystąpienie klasy DataContractSerializer klasy do serializacji lub deserializacji obiektu określonego typu.Initializes a new instance of the DataContractSerializer class to serialize or deserialize an object of the specified type. Ta metoda określa również listę znanych typów, które mogą być obecne na grafie obiektu maksymalną liczbę elementów wykresu, można serializować parametrów, aby zignorować nieoczekiwane dane, czy można użyć niestandardowego kodu XML konstrukcji, aby zachować dane odwołanie do obiektu na wykresie zastępczy dla niestandardowej serializacji oraz — element XML i przestrzeni nazw, które zawierają zawartość.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)

Inicjuje nowe wystąpienie klasy DataContractSerializer klasy do serializacji lub deserializacji obiektu określonego typu.Initializes a new instance of the DataContractSerializer class to serialize or deserialize an object of the specified type. Ta metoda określa również listę znanych typów, które mogą być obecne na grafie obiektu maksymalną liczbę elementów wykresu, można serializować parametrów, aby zignorować nieoczekiwane dane, czy można użyć niestandardowego kodu XML konstrukcji, aby zachować dane odwołanie do obiektu na wykresie zastępcze dla niestandardowej serializacji, — element XML i przestrzeń nazw zawierająca zawartość i alternatywę dla mapowania xsi:type deklaracje w czasie wykonywania.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)

Inicjuje nowe wystąpienie klasy DataContractSerializer klasy do serializacji lub deserializacji obiektu określonego typu przy użyciu elementu głównego XML i przestrzeń nazw określona przez parametry typu 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>)

Inicjuje nowe wystąpienie klasy DataContractSerializer klasy do serializacji lub deserializacji obiektu określonego typu.Initializes a new instance of the DataContractSerializer class to serialize or deserialize an object of the specified type. Ta metoda określa również element główny XML i przestrzeni nazw w dwóch XmlDictionaryString parametrów, a także listę znanych typów, które mogą być obecne na grafie obiektu.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)

Inicjuje nowe wystąpienie klasy DataContractSerializer klasy do serializacji lub deserializacji obiektu określonego typu.Initializes a new instance of the DataContractSerializer class to serialize or deserialize an object of the specified type. Ta metoda określa również listę znanych typów, które mogą być obecne na grafie obiektu maksymalną liczbę elementów wykresu, można serializować parametrów, aby zignorować nieoczekiwane dane, czy można użyć niestandardowego kodu XML konstrukcji, aby zachować dane odwołanie do obiektu na wykresie zastępcze dla niestandardowej serializacji i parametry XmlDictionaryString określające — element XML i przestrzeni nazw, która zawiera zawartość.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)

Inicjuje nowe wystąpienie klasy DataContractSerializer klasy do serializacji lub deserializacji obiektu określonego typu.Initializes a new instance of the DataContractSerializer class to serialize or deserialize an object of the specified type. Ta metoda określa również listę znanych typów, które mogą być obecne na grafie obiektu maksymalną liczbę elementów wykresu, można serializować parametrów, aby zignorować nieoczekiwane dane, czy można użyć niestandardowego kodu XML konstrukcji, aby zachować dane odwołanie do obiektu na wykresie zastępcze dla niestandardowej serializacji, parametry XmlDictionaryString określające — element XML i przestrzeń nazw zawierająca zawartość i alternatywę dla mapowania xsi:type deklaracje w czasie wykonywania.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.

Właściwości

DataContractResolver DataContractResolver DataContractResolver DataContractResolver

Pobiera składnik służy do mapowania dynamicznie xsi:type deklaracje typów znanego kontraktu.Gets the component used to dynamically map xsi:type declarations to known contract types.

DataContractSurrogate DataContractSurrogate DataContractSurrogate DataContractSurrogate

Pobiera typ zastępczy, który można rozszerzyć proces serializacji lub deserializacji.Gets a surrogate type that can extend the serialization or deserialization process.

IgnoreExtensionDataObject IgnoreExtensionDataObject IgnoreExtensionDataObject IgnoreExtensionDataObject

Pobiera wartość określającą, czy chcesz zignorować dane dostarczane przez rozszerzenie klasy, gdy klasa jest serializowany lub deserializowany.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

Pobiera kolekcję typów, które mogą być obecne na grafie obiektu zserializowanym przy użyciu tego wystąpienia 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

Pobiera maksymalną liczbę elementów do serializacji lub deserializacji wykresu obiektu.Gets the maximum number of items in an object graph to serialize or deserialize.

PreserveObjectReferences PreserveObjectReferences PreserveObjectReferences PreserveObjectReferences

Pobiera wartość określającą, czy można użyć niestandardowego kodu XML konstrukcji, aby zachować dane odwołanie do obiektu.Gets a value that specifies whether to use non-standard XML constructs to preserve object reference data.

SerializeReadOnlyTypes SerializeReadOnlyTypes SerializeReadOnlyTypes SerializeReadOnlyTypes

Pobiera wartość określającą, czy typy tylko do odczytu są serializowane.Gets a value that specifies whether read-only types are serialized.

Metody

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

Określa, czy określony obiekt jest równy bieżącemu obiektowi.Determines whether the specified object is equal to the current object.

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

Służy jako domyślnej funkcji skrótu.Serves as the default hash function.

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

Pobiera Type bieżącego wystąpienia.Gets the Type of the current instance.

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

Określa, czy XmlDictionaryReader jest umieszczony na obiekcie, który może być zdeserializowany.Determines whether the XmlDictionaryReader is positioned on an object that can be deserialized.

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

Określa, czy XmlReader jest umieszczony na obiekcie, który może być zdeserializowany.Determines whether the XmlReader is positioned on an object that can be deserialized.

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

Tworzy płytką kopię bieżącego Object.Creates a shallow copy of the current Object.

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

Odczytuje strumień XML lub dokumentu z Stream i zwraca po deserializacji obiektu.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)

Odczytuje dokument XML lub przesyłanie strumieniowe przy użyciu XmlDictionaryReader i zwraca po deserializacji obiektu.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)

Odczytuje strumień XML z XmlDictionaryReader i zwraca obiekt po deserializacji oraz określa, czy dokonuje Aby sprawdzić nazwę obiektu przed odczytaniem wartości.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)

Odczytuje dokument XML lub strumienia dokumentu i zwraca po deserializacji obiektu.Reads an XML document or document stream and returns the deserialized object. Metoda zawiera parametru do określenia, czy nazwa obiektu jest weryfikowany jest weryfikowana, a program rozpoznawania nazw dla mapowania xsi:type deklaracje w czasie wykonywania.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)

Odczytuje strumień XML z XmlReader i zwraca po deserializacji obiektu.Reads the XML stream with an XmlReader and returns the deserialized object.

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

Odczytuje strumień XML z XmlReader i zwraca obiekt po deserializacji oraz określa, czy dokonuje Aby sprawdzić nazwę obiektu przed odczytaniem wartości.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()

Zwraca ciąg, który reprezentuje bieżący obiekt.Returns a string that represents the current object.

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

Zapisuje zamykający elementu XML za pomocą XmlDictionaryWriter.Writes the closing XML element using an XmlDictionaryWriter.

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

Zapisuje zamykający elementu XML za pomocą XmlWriter.Writes the closing XML element using an XmlWriter.

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

Zapisuje kompletną zawartością (uruchamianie, zawartość i zakończenia) obiektu dokumentu XML lub przesyłanie strumieniowe przy użyciu określonego Stream.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)

Zapisuje kompletną zawartością (uruchamianie, zawartość i zakończenia) obiektu dokumentu XML lub przesyłanie strumieniowe przy użyciu określonego XmlDictionaryWriter.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)

Zapisuje wszystkie dane obiektów (począwszy od elementu XML, zawartość i otaczającego element) do dokumentu XML lub przy użyciu określonego obiektu XmlDictionaryWriter strumienia.Writes all the object data (starting XML element, content, and enclosing element) to an XML document or stream using the specified XmlDictionaryWriter. Metoda obejmuje program rozpoznawania nazw dla mapowania xsi:type deklaracje w czasie wykonywania.The method includes a resolver for mapping xsi:type declarations at runtime.

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

Zapisuje wszystkie dane obiektów (od elementu XML, zawartość i elementu zamykającego) do dokumentu XML lub przesyłanie strumieniowe przy użyciu 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)

Zapisuje XML zawartości przy użyciu XmlDictionaryWriter.Writes the XML content using an XmlDictionaryWriter.

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

Zapisuje XML zawartości przy użyciu XmlWriter.Writes the XML content using an XmlWriter.

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

Zapisuje otwierający elementu XML za pomocą XmlDictionaryWriter.Writes the opening XML element using an XmlDictionaryWriter.

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

Zapisuje otwierający elementu XML za pomocą XmlWriter.Writes the opening XML element using an XmlWriter.

Extension Methods

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

Zwraca serializacji zastępczy dostawcy przez ten serializator.Returns the surrogate serialization provider for this serializer.

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

Określa dostawcę surogatu serializacji dla tego DataContractSerializer.Specifies a surrogate serialization provider for this DataContractSerializer.

Dotyczy

Bezpieczeństwo wątkowe

Wystąpienia tej klasy są bezpieczne wątkowo, z wyjątkiem sytuacji, gdy wystąpienie jest używany z implementacją IDataContractSurrogate lub DataContractResolver.Instances of this class are thread safe except when the instance is used with an implementation of the IDataContractSurrogate or DataContractResolver.

Zobacz też