DataContractSerializerOperationBehavior Classe

Definição

Representa o comportamento em tempo de execução do 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
Herança
DataContractSerializerOperationBehavior
Implementações

Exemplos

O exemplo seguinte encontra o DataContractSerializerOperationBehavior na coleção de comportamentos para uma operação e redefine as MaxItemsInObjectGraph propriedades e 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

Observações

Permite DataContractSerializerOperationBehavior o controlo de DataContractSerializer opções, como as MaxItemsInObjectGraph propriedades e IgnoreExtensionDataObject . Algumas destas propriedades podem ser definidas apenas usando o construtor da classe. Nesse caso, pode DataContractSerializer ser substituído usando o CreateSerializer método. Para obter mais informações sobre contratos de dados, consulte Usando contratos de dados.

Para mais informações sobre a utilização do DataContractSerializerOperationBehavior para substituir o IDataContractSurrogate retorno pela DataContractSurrogate propriedade, consulte Contratos de Substituição de Dados.

Construtores

Name Description
DataContractSerializerOperationBehavior(OperationDescription, DataContractFormatAttribute)

Inicializa uma nova instância da DataContractSerializerOperationBehavior classe com a descrição da operação e o formato do contrato de dados especificados.

DataContractSerializerOperationBehavior(OperationDescription)

Inicializa uma nova instância da DataContractSerializerOperationBehavior classe com a descrição da operação especificada.

Propriedades

Name Description
DataContractFormatAttribute

Percebe o DataContractFormatAttribute que está relacionado com a operação.

DataContractResolver

Obtém ou define uma implementação do DataContractResolver que é usada para mapear dinamicamente tipos durante processos de serialização e desserialização.

DataContractSurrogate

Obtém ou define um substituto para ser usado durante os processos de serialização e desserialização.

IgnoreExtensionDataObject

Recebe ou define um valor que especifica se os dados fornecidos por uma extensão de um tipo (e, portanto, não incluídos no contrato de dados) são ignorados ou não.

MaxItemsInObjectGraph

Obtém ou define o número máximo de itens no grafo-objeto para serializar ou desserializar.

Métodos

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

Cria uma instância de uma classe que herda de XmlObjectSerializer para processos de serialização e desserialização.

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

Cria uma instância de uma classe que herda de XmlObjectSerializer para processos de serialização e deserialização com um XmlDictionaryString que contém o namespace.

Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
GetHashCode()

Serve como função de hash predefinida.

(Herdado de Object)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
MemberwiseClone()

Cria uma cópia superficial do atual Object.

(Herdado de Object)
ToString()

Devolve uma cadeia que representa o objeto atual.

(Herdado de Object)

Implementações de Interface Explícita

Name Description
IOperationBehavior.AddBindingParameters(OperationDescription, BindingParameterCollection)

Adiciona um conjunto de parâmetros ao comportamento.

IOperationBehavior.ApplyClientBehavior(OperationDescription, ClientOperation)

Associa um comportamento do cliente à operação.

IOperationBehavior.ApplyDispatchBehavior(OperationDescription, DispatchOperation)

Aplica o comportamento à operação.

IOperationBehavior.Validate(OperationDescription)

Valida a operação.

IWsdlExportExtension.ExportContract(WsdlExporter, WsdlContractConversionContext)

Exporta a representação WSDL da operação.

IWsdlExportExtension.ExportEndpoint(WsdlExporter, WsdlEndpointConversionContext)

Exporta a descrição do endpoint como um documento WSDL.

Aplica-se a

Ver também