DataContractSerializerOperationBehavior Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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. |