ClientOperation Classe

Definição

Usado para modificar ou estender o comportamento de execução de uma operação contratual específica num objeto cliente ou objeto canal cliente. Esta classe não pode ser herdada.

public ref class ClientOperation sealed
public ref class ClientOperation sealed : System::ServiceModel::Dispatcher::ClientOperationCompatBase
public sealed class ClientOperation
public sealed class ClientOperation : System.ServiceModel.Dispatcher.ClientOperationCompatBase
type ClientOperation = class
type ClientOperation = class
    inherit ClientOperationCompatBase
Public NotInheritable Class ClientOperation
Public NotInheritable Class ClientOperation
Inherits ClientOperationCompatBase
Herança
ClientOperation
Herança

Exemplos

O exemplo de código seguinte mostra a System.ServiceModel.Description.IEndpointBehavior inserção de um inspetor de parâmetros personalizado em cada ClientOperation uma da ClientRuntime.Operations propriedade.

#region IEndpointBehavior Members
public void AddBindingParameters(
  ServiceEndpoint endpoint, BindingParameterCollection bindingParameters
) { return; }

public void ApplyClientBehavior(ServiceEndpoint endpoint, ClientRuntime clientRuntime)
{
  clientRuntime.MessageInspectors.Add(new Inspector());
  foreach (ClientOperation op in clientRuntime.Operations)
    op.ParameterInspectors.Add(new Inspector());
}

public void ApplyDispatchBehavior(ServiceEndpoint endpoint, EndpointDispatcher endpointDispatcher)
{
  endpointDispatcher.DispatchRuntime.MessageInspectors.Add(new Inspector());
  foreach (DispatchOperation op in endpointDispatcher.DispatchRuntime.Operations)
    op.ParameterInspectors.Add(new Inspector());
}

public void Validate(ServiceEndpoint endpoint){ return; }
#Region "IEndpointBehavior Members"
    Public Sub AddBindingParameters(ByVal endpoint As ServiceEndpoint, ByVal bindingParameters _
                                    As BindingParameterCollection) Implements IEndpointBehavior.AddBindingParameters
        Return
    End Sub

    Public Sub ApplyClientBehavior(ByVal endpoint As ServiceEndpoint, ByVal clientRuntime As ClientRuntime) _
    Implements IEndpointBehavior.ApplyClientBehavior
        clientRuntime.MessageInspectors.Add(New Inspector())
        For Each op As ClientOperation In clientRuntime.Operations
            op.ParameterInspectors.Add(New Inspector())
        Next op
    End Sub

    Public Sub ApplyDispatchBehavior(ByVal endpoint As ServiceEndpoint, ByVal endpointDispatcher As  _
                                     EndpointDispatcher) Implements IEndpointBehavior.ApplyDispatchBehavior
        endpointDispatcher.DispatchRuntime.MessageInspectors.Add(New Inspector())
        For Each op As DispatchOperation In endpointDispatcher.DispatchRuntime.Operations
            op.ParameterInspectors.Add(New Inspector())
        Next op
    End Sub

Public Sub Validate(ByVal endpoint As ServiceEndpoint) Implements IEndpointBehavior.Validate
    Return
End Sub

Observações

A ClientOperation classe é o local para modificações em tempo de execução do cliente e ponto de inserção para extensões personalizadas que têm âmbito para apenas uma operação de serviço. (Para modificar o comportamento em tempo de execução do cliente para todas as mensagens de um contrato, use a ClientRuntime classe.)

Instale ClientOperation modificações usando um objeto de comportamento cliente personalizado, seja do tipo IContractBehavior (para encontrar uma operação específica a modificar) ou do tipo IOperationBehavior (que pode depois ser aplicado criando um atributo personalizado).

Use a Operations propriedade para localizar o ClientOperation objeto que representa uma operação de serviço específica.

Para mais informações sobre clientes e a arquitetura do cliente, consulte Aceder a Serviços Usando um Cliente WCF e Arquitetura de Cliente WCF. Para mais informações sobre a personalização do tempo de execução do cliente, consulte Extensão de Clientes. Para mais informações sobre a utilização de comportamentos, consulte Configurar e Estender o Tempo de Execução com Comportamentos.

As seguintes propriedades permitem-lhe inserir objetos personalizados ou modificar o comportamento de execução do cliente:

  • Use a Formatter propriedade para inserir uma implementação personalizada IClientMessageFormatter para uma operação ou modificar o formatador atual.

  • Use a ParameterInspectors propriedade para inserir uma implementação personalizada IParameterInspector ou para modificar a atual.

  • Use a SerializeRequest propriedade para controlar quem serializa uma mensagem de saída.

  • Use a DeserializeReply propriedade para controlar quem desserializa uma mensagem de entrada.

  • Use a Action propriedade para aceder à ação WS-Addressing da mensagem de pedido e a ReplyAction propriedade para aceder à ação da mensagem de resposta.

  • Use o BeginMethod e EndMethod para especificar quais os métodos clientes associados a uma operação assíncrona.

  • Use a FaultContractInfos propriedade para obter uma coleção de tipos especificados que podem aparecer em falhas SOAP como tipo de detalhe.

  • Use as propriedades IsInitiating e IsTerminating para controlar se uma sessão é iniciada ou terminada, respetivamente, quando a operação é chamada.

  • Use a IsOneWay propriedade para controlar se o cliente espera por uma resposta antes de completar a invocação.

  • Use a Parent propriedade para obter o objeto que contém ClientRuntime .

  • Use a Name propriedade para obter o nome da operação.

  • Use a SyncMethod propriedade para controlar qual método é mapeado para a operação.

Construtores

Name Description
ClientOperation(ClientRuntime, String, String, String)

Inicializa uma nova instância da ClientOperation classe usando os valores especificados ClientRuntimede , nome, ação e resposta de ação.

ClientOperation(ClientRuntime, String, String)

Inicializa uma nova instância da ClientOperation classe usando os valores ClientRuntimeespecificados , nome e ação.

Propriedades

Name Description
Action

Percebe a ação da operação.

BeginMethod

Obtém ou define o método associado a uma operação assíncrona.

ClientParameterInspectors

Obtém uma coleção de objetos inspetor de parâmetros usados para visualizar ou modificar parâmetros antes ou depois de uma chamada ao cliente.

DeserializeReply

Recebe ou define um valor que indica se o Formatter valor da propriedade é usado para desserializar a mensagem de resposta.

EndMethod

Obtém ou define o método que implementa o método final assíncrono para a operação.

FaultContractInfos

Obtém uma coleção de FaultContractInfo objetos que representam as falhas SOAP especificadas para esta operação.

Formatter

Obtém ou define o formador que serializa objetos em mensagens e desserializa mensagens em objetos.

IsInitiating

Recebe ou define um valor que indica se uma sessão pode ser iniciada por uma mensagem para esta operação.

IsOneWay

Recebe ou define um valor que indica se a operação é unidirecional.

IsTerminating

Recebe ou define um valor que indica se esta operação é a última numa sessão.

Name

Fica com o nome da operação.

ParameterInspectors

Obtém ou define uma coleção de IParameterInspector objetos que podem inspecionar e modificar objetos de entrada e saída para um determinado método cliente.

Parent

Obtém o objeto que contém.ClientRuntime

ReplyAction

Recebe a ação da mensagem de resposta desta operação.

SerializeRequest

Recebe ou define um valor que especifica se o Formatter objeto serializa uma mensagem de saída.

SyncMethod

Obtém ou define o método associado a esta operação.

TaskMethod

Obtém ou define o método associado a uma tarefa.

TaskTResult

Obtém ou define o tipo do resultado do método associado a uma tarefa.

Métodos

Name Description
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)

Aplica-se a