Sdílet prostřednictvím


DataContractSerializerOperationBehavior Třída

Definice

Představuje chování za běhu objektu DataContractSerializer.

public ref class DataContractSerializerOperationBehavior : System::ServiceModel::Description::IOperationBehavior
public ref class DataContractSerializerOperationBehavior : System::ServiceModel::Description::IOperationBehavior, System::ServiceModel::Description::IWsdlExportExtension
public class DataContractSerializerOperationBehavior : System.ServiceModel.Description.IOperationBehavior
public class DataContractSerializerOperationBehavior : System.ServiceModel.Description.IOperationBehavior, System.ServiceModel.Description.IWsdlExportExtension
type DataContractSerializerOperationBehavior = class
    interface IOperationBehavior
type DataContractSerializerOperationBehavior = class
    interface IOperationBehavior
    interface IWsdlExportExtension
Public Class DataContractSerializerOperationBehavior
Implements IOperationBehavior
Public Class DataContractSerializerOperationBehavior
Implements IOperationBehavior, IWsdlExportExtension
Dědičnost
DataContractSerializerOperationBehavior
Implementuje

Příklady

Následující příklad najde DataContractSerializerOperationBehavior v kolekci chování operace a resetuje MaxItemsInObjectGraph a IgnoreExtensionDataObject vlastnosti.

private void DataContractBehavior()
{
    WSHttpBinding b = new WSHttpBinding(SecurityMode.Message);
    Uri baseAddress = new Uri("http://localhost:1066/calculator");
    ServiceHost sh = new ServiceHost(typeof(Calculator), baseAddress);
    sh.AddServiceEndpoint(typeof(ICalculator), b, "");

    // Find the ContractDescription of the operation to find.
    ContractDescription cd = sh.Description.Endpoints[0].Contract;
    OperationDescription myOperationDescription = cd.Operations.Find("Add");

    // Find the serializer behavior.
    DataContractSerializerOperationBehavior serializerBehavior =
        myOperationDescription.Behaviors.
           Find<DataContractSerializerOperationBehavior>();

    // If the serializer is not found, create one and add it.
    if (serializerBehavior == null)
    {
        serializerBehavior = new DataContractSerializerOperationBehavior(myOperationDescription);
        myOperationDescription.Behaviors.Add(serializerBehavior);
    }

    // Change the settings of the behavior.
    serializerBehavior.MaxItemsInObjectGraph = 10000;
    serializerBehavior.IgnoreExtensionDataObject = true;

    sh.Open();
    Console.WriteLine("Listening");
    Console.ReadLine();
}
Private Sub DataContractBehavior() 
    Dim b As New WSHttpBinding(SecurityMode.Message)
    Dim baseAddress As New Uri("http://localhost:1066/calculator")
    Dim sh As New ServiceHost(GetType(Calculator), baseAddress)
    sh.AddServiceEndpoint(GetType(ICalculator), b, "")
    
    ' Find the ContractDescription of the operation to find.
    Dim cd As ContractDescription = sh.Description.Endpoints(0).Contract
    Dim myOperationDescription As OperationDescription = cd.Operations.Find("Add")
    
    ' Find the serializer behavior.
    Dim serializerBehavior As DataContractSerializerOperationBehavior = _
    myOperationDescription.Behaviors.Find _
    (Of DataContractSerializerOperationBehavior)()
    
    ' If the serializer is not found, create one and add it.
    If serializerBehavior Is Nothing Then
        serializerBehavior = New DataContractSerializerOperationBehavior(myOperationDescription)
        myOperationDescription.Behaviors.Add(serializerBehavior)
    End If
    
    ' Change settings of the behavior.
    serializerBehavior.MaxItemsInObjectGraph = 10000
    serializerBehavior.IgnoreExtensionDataObject = True
    
    sh.Open()
    Console.WriteLine("Listening")
    Console.ReadLine()

End Sub

Poznámky

Umožňuje DataContractSerializerOperationBehavior řízení DataContractSerializer možností, jako jsou vlastnosti MaxItemsInObjectGraph a IgnoreExtensionDataObject možnosti. Některé z těchto vlastností lze nastavit pouze pomocí konstruktoru třídy. V takovém případě DataContractSerializer lze nahradit metodou CreateSerializer . Další informace o kontraktech dat naleznete v tématu Použití kontraktů dat.

Další informace o použití DataContractSerializerOperationBehavior k nahrazení IDataContractSurrogate vrácené DataContractSurrogate vlastností naleznete v tématu Data Contract Náhradnírogates.

Konstruktory

Name Description
DataContractSerializerOperationBehavior(OperationDescription, DataContractFormatAttribute)

Inicializuje novou instanci DataContractSerializerOperationBehavior třídy se zadaným popisem operace a formátem kontraktu dat.

DataContractSerializerOperationBehavior(OperationDescription)

Inicializuje novou instanci DataContractSerializerOperationBehavior třídy se zadaným popisem operace.

Vlastnosti

Name Description
DataContractFormatAttribute

DataContractFormatAttribute Získá přidružené k operaci.

DataContractResolver

Získá nebo nastaví implementaci DataContractResolver , která se používá k dynamické mapování typů během serializace a deserializace procesů.

DataContractSurrogate

Získá nebo nastaví náhradní použít během serializace a deserializace procesů.

IgnoreExtensionDataObject

Získá nebo nastaví hodnotu, která určuje, zda jsou data poskytnutá rozšířením typu (a proto nejsou v datovém kontraktu) ignorována nebo ne.

MaxItemsInObjectGraph

Získá nebo nastaví maximální počet položek v grafu objektu serializovat nebo deserializovat.

SerializationSurrogateProvider

Získá nebo nastaví náhradního zprostředkovatele, který se má použít během serializace a deserializace procesů.

Metody

Name Description
CreateSerializer(Type, String, String, IList<Type>)

Vytvoří instanci třídy, která dědí z XmlObjectSerializer procesu serializace a deserializace.

CreateSerializer(Type, XmlDictionaryString, XmlDictionaryString, IList<Type>)

Vytvoří instanci třídy, která dědí z XmlObjectSerializer procesu serializace a deserializace s XmlDictionaryString oborem názvů.

Equals(Object)

Určuje, zda je zadaný objekt roven aktuálnímu objektu.

(Zděděno od Object)
GetHashCode()

Slouží jako výchozí funkce hash.

(Zděděno od Object)
GetType()

Získá Type aktuální instance.

(Zděděno od Object)
MemberwiseClone()

Vytvoří mělkou kopii aktuálního Object.

(Zděděno od Object)
ToString()

Vrátí řetězec, který představuje aktuální objekt.

(Zděděno od Object)

Explicitní implementace rozhraní

Name Description
IOperationBehavior.AddBindingParameters(OperationDescription, BindingParameterCollection)

Přidá kolekci parametrů k chování.

IOperationBehavior.ApplyClientBehavior(OperationDescription, ClientOperation)

Připojí k operaci chování klienta.

IOperationBehavior.ApplyDispatchBehavior(OperationDescription, DispatchOperation)

Použije chování operace.

IOperationBehavior.Validate(OperationDescription)

Ověří operaci.

IWsdlExportExtension.ExportContract(WsdlExporter, WsdlContractConversionContext)

Exportuje reprezentaci WSDL operace.

IWsdlExportExtension.ExportEndpoint(WsdlExporter, WsdlEndpointConversionContext)

Exportuje popis koncového bodu jako dokument WSDL.

Platí pro

Viz také