DataContractSerializer Klasa

Definicja

Serializować i deserializacji wystąpienia typu do strumienia XML lub dokumentu przy użyciu dostarczonego 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
DataContractSerializer

Przykłady

Poniższy przykładowy kod pokazuje typ o nazwie Person , który jest serializowany przez DataContractSerializer .The following example code shows a type named Person that is serialized by the DataContractSerializer. Ten DataContractAttribute atrybut jest stosowany do klasy i DataMemberAttribute jest zastosowany do elementów członkowskich, aby DataContractSerializer określić znaczenie 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, aby serializować i deserializować wystąpienia typu w strumieniu lub dokumencie XML.Use the DataContractSerializer class to serialize and deserialize instances of a type into an XML stream or document. Na przykład można utworzyć typ o nazwie Person z właściwościami zawierającymi podstawowe 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. Następnie można utworzyć wystąpienie klasy i manipulować nim Person oraz zapisać wszystkie jego wartości właściwości w dokumencie XML do późniejszego pobrania lub w strumieniu 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żniejszym, DataContractSerializer jest używany do serializacji i deserializacji danych wysyłanych w komunikatach programu Windows Communication Foundation (WCF).Most important, the DataContractSerializer is used to serialize and deserialize data sent in Windows Communication Foundation (WCF) messages. Zastosuj DataContractAttribute atrybut do klas i DataMemberAttribute atrybutu do elementów członkowskich 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 mogą być serializowane, 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 , należy najpierw utworzyć wystąpienie klasy i obiekt odpowiedni do pisania lub odczytywania formatu; na przykład wystąpienie elementu 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. Aby pobrać dane, należy utworzyć obiekt odpowiedni do odczytu formatu danych ( XmlDictionaryReader na przykład dla dokumentu XML) i wywołać ReadObject metodę.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żna ustawić typ serializatora kontraktu danych przy użyciu elementu < DataContractSerializer > w pliku konfiguracyjnym aplikacji klienckiej.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

DataContractSerializerJest używany w połączeniu z DataContractAttribute DataMemberAttribute klasami i.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, które chcesz serializować, Zastosuj DataMemberAttribute .For each member of the class that returns data that you want to serialize, apply the DataMemberAttribute. Można serializować pola i właściwości, niezależnie od dostępności: Private, protected, internal, protected internal lub public.You can serialize fields and properties, regardless of accessibility: private, protected, internal, protected internal, or public.

Na przykład schemat określa Customer ID Właściwość z właściwością, ale masz już istniejącą aplikację, która używa 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 kontraktem, najpierw Zastosuj 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, które chcesz serializować.Then apply the DataMemberAttribute to every field or property that you want to serialize.

Uwaga

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

Końcowy format XML nie może być tekstem.The final format of the XML need not be text. Zamiast tego DataContractSerializer zapisuje dane jako sprawdzonych XML, co umożliwia zapisanie danych 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ę użycie XmlDictionaryReader XmlDictionaryWriter klas i do odczytu i zapisu, ponieważ obie 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ę mającą pola lub właściwości, które muszą zostać wypełnione przed serializacji lub deserializacji, użyj atrybutów wywołania zwrotnego, zgodnie z opisem w wywołaniach zwrotnych serializacji z odpornością na wersje.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 wymagany jest typ "znany" do DataContractSerializer .When serializing or deserializing an object, it is required that the type is "known" to the DataContractSerializer. Zacznij od utworzenia wystąpienia klasy implementującej IEnumerable<T> (na przykład List<T> ) i dodawania 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 z DataContractSerializer użyciem jednego z przeciążeń, które pobiera 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 typem znanym domyślnie, więc należy ją dodać ręcznie 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

DataContractSerializerZrozumienie umów dotyczących danych, które zostały zaprojektowane tak, aby były zgodne z przyszłymi wersjami kontraktu.The DataContractSerializer understands data contracts that have been designed to be compatible with future versions of the contract. Takie typy implementują IExtensibleDataObject interfejs.Such types implement the IExtensibleDataObject interface. Interfejs zawiera ExtensionData Właściwość, która zwraca ExtensionDataObject obiekt.The interface features the ExtensionData property that returns an ExtensionDataObject object. Aby uzyskać więcej informacji, zobacz Kontrakty danych zgodne z przekazywaniem dalej.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, nie DataContractSerializer wywołuje konstruktora obiektu docelowego.When instantiating the target object during deserialization, the DataContractSerializer does not call the constructor of the target object. Jeśli tworzysz typ [DataContract] , który jest dostępny z częściowej relacji zaufania (czyli jest on publiczny i w zestawie, do którego AllowPartiallyTrustedCallers zastosowano atrybut) i który wykonuje pewne akcje związane z zabezpieczeniami, musisz pamiętać, że Konstruktor nie jest wywoływany.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:

  • W przypadku próby ograniczenia dostępu częściowego zaufania przez zastosowanie konstruktora wewnętrznego lub prywatnego lub przez dodanie LinkDemand do konstruktora — żaden z nich nie ma żadnego efektu podczas deserializacji w ramach 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.

  • W przypadku kodu klasy, która zakłada, że Konstruktor został uruchomiony, Klasa może przejść do nieprawidłowego stanu wewnętrznego, który jest możliwe do wykorzystania.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)

Inicjuje nowe wystąpienie 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)

Inicjuje nowe wystąpienie 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>)

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

Inicjuje nowe wystąpienie 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ą znajdować się na grafie obiektów, maksymalną liczbę elementów grafu do serializacji, parametry w celu zignorowania nieoczekiwanych danych, niezależnie od tego, czy mają być używane niestandardowe konstrukcje XML, aby zachować dane referencyjne obiektów na grafie i Surogat dla serializacji niestandardowej.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)

Inicjuje nowe wystąpienie 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ą znajdować się na grafie obiektów, maksymalną liczbę elementów grafu do serializacji, parametry w celu zignorowania nieoczekiwanych danych, niezależnie od tego, czy mają być używane niestandardowe konstrukcje XML, aby zachować dane referencyjne obiektów na grafie, Surogat dla serializacji niestandardowej i alternatywę do mapowania xsi:type deklaracji 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)

Inicjuje nowe wystąpienie DataContractSerializer klasy do serializacji lub deserializacji obiektu określonego typu przy użyciu dostarczonego elementu głównego 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>)

Inicjuje nowe wystąpienie 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ż główny element XML i przestrzeń nazw w dwóch parametrach String oraz listę znanych typów, które mogą znajdować się 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)

Inicjuje nowe wystąpienie 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 w grafie obiektów, maksymalną liczbę elementów grafu do serializacji, parametry do ignorowania nieoczekiwanych danych, czy używać niestandardowych konstrukcji XML do zachowywania danych referencyjnych obiektów na grafie, surogatu serializacji niestandardowej i elementu XML oraz przestrzeni nazw zawierającej 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)

Inicjuje nowe wystąpienie 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ą znajdować się na grafie obiektów, maksymalną liczbę elementów grafu do serializacji, parametry w celu zignorowania nieoczekiwanych danych, niezależnie od tego, czy mają być używane niestandardowe konstrukcje XML, aby zachować dane referencyjne obiektów na grafie, Surogat dla serializacji niestandardowej, element XML i przestrzeń nazw, które zawierają zawartość, i alternatywę dla mapowania xsi:type deklaracji wThis 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)

Inicjuje nowe wystąpienie DataContractSerializer klasy do serializacji lub deserializacji obiektu określonego typu przy użyciu elementu głównego XML i przestrzeni nazw określonego za pośrednictwem parametrów 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>)

Inicjuje nowe wystąpienie 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ż główny element XML i przestrzeń nazw w dwóch XmlDictionaryString parametrach, a także listę znanych typów, które mogą znajdować się na grafie obiektów.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)

Inicjuje nowe wystąpienie 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ą znajdować się na grafie obiektów, maksymalną liczbę elementów grafu do serializacji, parametry do ignorowania nieoczekiwanych danych, bez względu na to, czy mają być używane niestandardowe konstrukcje XML, aby zachować dane referencyjne obiektów na grafie, Surogat dla serializacji niestandardowej i parametry XmlDictionaryString określające element XML i przestrzeń 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 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)

Inicjuje nowe wystąpienie 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 w grafie obiektów, Maksymalna liczba elementów grafu do serializacji, parametrów w celu zignorowania nieoczekiwanych danych, bez względu na to, czy mają być używane niestandardowe konstrukcje XML do zachowywania danych referencyjnych obiektów na grafie, Surogat dla serializacji niestandardowej, parametry XmlDictionaryString określające element XML i przestrzeń nazw, które zawierają zawartość, i alternatywę dla mapowania xsi:type deklaracji 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

Pobiera składnik używany do dynamicznego mapowania xsi:type deklaracji do znanych typów kontraktu.Gets the component used to dynamically map xsi:type declarations to known contract types.

DataContractSurrogate

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

IgnoreExtensionDataObject

Pobiera wartość określającą, czy ignorować dane dostarczane przez rozszerzenie klasy, gdy Klasa jest serializowana lub deserializowana.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

Pobiera kolekcję typów, które mogą znajdować się na wykresie obiektu serializowanym 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

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

PreserveObjectReferences

Pobiera wartość określającą, czy użyć niestandardowych konstrukcji XML, aby zachować dane referencyjne obiektu.Gets a value that specifies whether to use non-standard XML constructs to preserve object reference data.

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)

Określa, czy dany obiekt jest taki sam, jak bieżący obiekt.Determines whether the specified object is equal to the current object.

(Odziedziczone po Object)
GetHashCode()

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

(Odziedziczone po Object)
GetType()

Pobiera Type bieżące wystąpienie.Gets the Type of the current instance.

(Odziedziczone po Object)
IsStartObject(XmlDictionaryReader)

Określa, czy element XmlDictionaryReader jest pozycjonowany w obiekcie, który można deserializować.Determines whether the XmlDictionaryReader is positioned on an object that can be deserialized.

IsStartObject(XmlReader)

Określa, czy element XmlReader jest pozycjonowany w obiekcie, który można deserializować.Determines whether the XmlReader is positioned on an object that can be deserialized.

MemberwiseClone()

Tworzy skróconą kopię bieżącego elementu Object .Creates a shallow copy of the current Object.

(Odziedziczone po Object)
ReadObject(Stream)

Odczytuje strumień XML lub dokument z Stream i zwraca obiekt deserializowany.Reads the XML stream or document with a Stream and returns the deserialized object.

(Odziedziczone po XmlObjectSerializer)
ReadObject(XmlDictionaryReader)

Odczytuje dokument lub strumień XML z XmlDictionaryReader i zwraca obiekt deserializowany.Reads the XML document or stream with an XmlDictionaryReader and returns the deserialized object.

(Odziedziczone po XmlObjectSerializer)
ReadObject(XmlDictionaryReader, Boolean)

Odczytuje strumień XML z XmlDictionaryReader i zwraca obiekt deserializowany, a także określa, czy przed odczytaniem jego wartości jest sprawdzane sprawdzenie nazwy obiektu.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)

Odczytuje strumień dokumentu lub dokumentu XML i zwraca obiekt deserializowany.Reads an XML document or document stream and returns the deserialized object. Metoda zawiera parametr służący do określenia, czy nazwa obiektu jest zweryfikowana, oraz mechanizm rozwiązywania konfliktów dla xsi:type deklaracji mapowania 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)

Odczytuje strumień XML z XmlReader i zwraca obiekt deserializowany.Reads the XML stream with an XmlReader and returns the deserialized object.

ReadObject(XmlReader, Boolean)

Odczytuje strumień XML z XmlReader i zwraca obiekt deserializowany, a także określa, czy przed odczytaniem jego wartości jest sprawdzane sprawdzenie nazwy obiektu.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()

Zwraca ciąg reprezentujący bieżący obiekt.Returns a string that represents the current object.

(Odziedziczone po Object)
WriteEndObject(XmlDictionaryWriter)

Zapisuje zamykający element XML przy użyciu XmlDictionaryWriter .Writes the closing XML element using an XmlDictionaryWriter.

WriteEndObject(XmlWriter)

Zapisuje zamykający element XML przy użyciu XmlWriter .Writes the closing XML element using an XmlWriter.

WriteObject(Stream, Object)

Zapisuje kompletną zawartość (początkową, zawartość i zakończenie) obiektu do dokumentu lub strumienia XML o określonej wartości Stream .Writes the complete content (start, content, and end) of the object to the XML document or stream with the specified Stream.

(Odziedziczone po XmlObjectSerializer)
WriteObject(XmlDictionaryWriter, Object)

Zapisuje kompletną zawartość (początkową, zawartość i zakończenie) obiektu do dokumentu lub strumienia XML o określonej wartości XmlDictionaryWriter .Writes the complete content (start, content, and end) of the object to the XML document or stream with the specified XmlDictionaryWriter.

(Odziedziczone po XmlObjectSerializer)
WriteObject(XmlDictionaryWriter, Object, DataContractResolver)

Zapisuje wszystkie dane obiektu (początkowy element XML, zawartość i otaczający element) do dokumentu lub strumienia XML przy użyciu określonego implementacja obiektu XmlDictionaryWriter.Writes all the object data (starting XML element, content, and enclosing element) to an XML document or stream using the specified XmlDictionaryWriter. Metoda obejmuje mechanizm rozwiązywania konfliktów dla xsi:type deklaracji mapowania w czasie wykonywania.The method includes a resolver for mapping xsi:type declarations at runtime.

WriteObject(XmlWriter, Object)

Zapisuje wszystkie dane obiektu (początkowy element XML, zawartość i element zamykający) do dokumentu lub strumienia XML 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)

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

WriteObjectContent(XmlWriter, Object)

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

WriteStartObject(XmlDictionaryWriter, Object)

Zapisuje otwierający element XML przy użyciu XmlDictionaryWriter .Writes the opening XML element using an XmlDictionaryWriter.

WriteStartObject(XmlWriter, Object)

Zapisuje otwierający element XML przy użyciu XmlWriter .Writes the opening XML element using an XmlWriter.

Metody rozszerzania

GetSerializationSurrogateProvider(DataContractSerializer)

Zwraca zastępcę dostawcy serializacji dla tego serializatora.Returns the surrogate serialization provider for this serializer.

SetSerializationSurrogateProvider(DataContractSerializer, ISerializationSurrogateProvider)

Określa wieloskładnikowego dostawcę serializacji dla tego elementu 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 przypadków, gdy wystąpienie jest używane 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ż