Compartilhar via


DataContractSerializerOperationBehavior Classe

Definição

Representa o comportamento de tempo de execução de 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 a seguir localiza o DataContractSerializerOperationBehavior na coleção de comportamentos de 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

Comentários

O DataContractSerializerOperationBehavior habilita o controle de DataContractSerializer opções, como as MaxItemsInObjectGraph propriedades e IgnoreExtensionDataObject . Algumas dessas propriedades só podem ser definidas usando o construtor da classe . Nesse caso, o DataContractSerializer pode ser substituído usando o CreateSerializer método . Para obter mais informações sobre contratos de dados, confira Como usar contratos de dados.

Para obter mais informações sobre como usar o DataContractSerializerOperationBehavior para substituir o IDataContractSurrogate retornado pela DataContractSurrogate propriedade , consulte Substitutos de contrato de dados.

Construtores

DataContractSerializerOperationBehavior(OperationDescription)

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

DataContractSerializerOperationBehavior(OperationDescription, DataContractFormatAttribute)

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

Propriedades

DataContractFormatAttribute

Obtém o DataContractFormatAttribute associado à operação.

DataContractResolver

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

DataContractSurrogate

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

IgnoreExtensionDataObject

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

MaxItemsInObjectGraph

Obtém ou define o número máximo de itens no grafo de objeto a serem serializados ou desserializados.

SerializationSurrogateProvider

Obtém ou define um provedor alternativo a ser usado durante os processos de serialização e desserialização.

Métodos

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 desserialização com uma XmlDictionaryString que contém o namespace.

Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
GetHashCode()

Serve como a função de hash padrão.

(Herdado de Object)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
MemberwiseClone()

Cria uma cópia superficial do Object atual.

(Herdado de Object)
ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.

(Herdado de Object)

Implantações explícitas de interface

IOperationBehavior.AddBindingParameters(OperationDescription, BindingParameterCollection)

Adiciona uma coleção de parâmetros ao comportamento.

IOperationBehavior.ApplyClientBehavior(OperationDescription, ClientOperation)

Anexa 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 de WSDL da operação.

IWsdlExportExtension.ExportEndpoint(WsdlExporter, WsdlEndpointConversionContext)

Exporta a descrição do ponto de extremidade como um documento WSDL.

Aplica-se a

Confira também