Udostępnij za pośrednictwem


DataContractSerializerOperationBehavior Klasa

Definicja

Reprezentuje zachowanie w czasie wykonywania elementu 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
Dziedziczenie
DataContractSerializerOperationBehavior
Implementuje

Przykłady

Poniższy przykład znajduje element DataContractSerializerOperationBehavior w kolekcji zachowań operacji i resetuje MaxItemsInObjectGraph właściwości i IgnoreExtensionDataObject .

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

Uwagi

Funkcja DataContractSerializerOperationBehavior umożliwia sterowanie DataContractSerializer opcjami, takimi jak MaxItemsInObjectGraph właściwości i IgnoreExtensionDataObject . Niektóre z tych właściwości można ustawić tylko przy użyciu konstruktora klasy. W takim przypadku DataContractSerializer można zastąpić metodę CreateSerializer . Aby uzyskać więcej informacji na temat kontraktów danych, zobacz Using Data Contracts (Używanie kontraktów danych).

Aby uzyskać więcej informacji na temat używania elementu DataContractSerializerOperationBehavior , aby zastąpić IDataContractSurrogate zwracaną przez DataContractSurrogate właściwość, zobacz Zastępcy kontraktu danych.

Konstruktory

DataContractSerializerOperationBehavior(OperationDescription)

Inicjuje DataContractSerializerOperationBehavior nowe wystąpienie klasy z określonym opisem operacji.

DataContractSerializerOperationBehavior(OperationDescription, DataContractFormatAttribute)

Inicjuje DataContractSerializerOperationBehavior nowe wystąpienie klasy z określonym opisem operacji i formatem kontraktu danych.

Właściwości

DataContractFormatAttribute

DataContractFormatAttribute Pobiera skojarzony z operacją.

DataContractResolver

Pobiera lub ustawia implementację, która jest używana do dynamicznego DataContractResolver mapowania typów podczas procesów serializacji i deserializacji.

DataContractSurrogate

Pobiera lub ustawia surogat do użycia podczas procesów serializacji i deserializacji.

IgnoreExtensionDataObject

Pobiera lub ustawia wartość określającą, czy dane dostarczone przez rozszerzenie typu (a zatem nie w kontrakcie danych) są ignorowane, czy nie.

MaxItemsInObjectGraph

Pobiera lub ustawia maksymalną liczbę elementów na grafie obiektu w celu serializacji lub deserializacji.

SerializationSurrogateProvider

Pobiera lub ustawia dostawcę zastępczego do użycia podczas procesów serializacji i deserializacji.

Metody

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

Tworzy wystąpienie klasy dziedziczonej z XmlObjectSerializer procesów serializacji i deserializacji.

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

Tworzy wystąpienie klasy dziedziczonej z XmlObjectSerializer procesów serializacji i deserializacji z elementem zawierającym XmlDictionaryString przestrzeń nazw.

Equals(Object)

Określa, czy dany obiekt jest taki sam, jak bieżący obiekt.

(Odziedziczone po Object)
GetHashCode()

Służy jako domyślna funkcja skrótu.

(Odziedziczone po Object)
GetType()

Type Pobiera bieżące wystąpienie.

(Odziedziczone po Object)
MemberwiseClone()

Tworzy płytkią kopię bieżącego Objectelementu .

(Odziedziczone po Object)
ToString()

Zwraca ciąg reprezentujący bieżący obiekt.

(Odziedziczone po Object)

Jawne implementacje interfejsu

IOperationBehavior.AddBindingParameters(OperationDescription, BindingParameterCollection)

Dodaje kolekcję parametrów do zachowania.

IOperationBehavior.ApplyClientBehavior(OperationDescription, ClientOperation)

Dołącza zachowanie klienta do operacji.

IOperationBehavior.ApplyDispatchBehavior(OperationDescription, DispatchOperation)

Stosuje zachowanie do operacji.

IOperationBehavior.Validate(OperationDescription)

Weryfikuje operację.

IWsdlExportExtension.ExportContract(WsdlExporter, WsdlContractConversionContext)

Eksportuje reprezentację WSDL operacji.

IWsdlExportExtension.ExportEndpoint(WsdlExporter, WsdlEndpointConversionContext)

Eksportuje opis punktu końcowego jako dokument WSDL.

Dotyczy

Zobacz też