Compartilhar via


ClientOperation Classe

Definição

Usado para modificar ou estender o comportamento de execução de uma operação em um objeto do cliente ou objeto do canal do cliente. Essa 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 a seguir mostra uma System.ServiceModel.Description.IEndpointBehavior inserção de um inspetor de parâmetro personalizado em cada ClientOperation um na 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

Comentários

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

Instale ClientOperation modificações usando um objeto de comportamento de cliente personalizado, qualquer um dos tipos IContractBehavior (para localizar uma operação específica a ser modificada) ou de tipo IOperationBehavior (que pode 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 obter mais informações sobre clientes e a arquitetura do cliente, consulte Acessando serviços usando um cliente WCF e uma arquitetura de cliente WCF. Para obter mais informações sobre como personalizar o runtime do cliente, consulte Extending Clients. Para obter mais informações sobre como usar comportamentos, consulte Configurar e estender o runtime com comportamentos.

As propriedades a seguir permitem que você insira objetos personalizados ou modifique 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 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 acessar a ação WS-Addressing da mensagem de solicitação e da ReplyAction propriedade para acessar a ação da mensagem de resposta.

  • Use e BeginMethod EndMethod para especificar quais métodos de cliente estão 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 o tipo de detalhes.

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

  • Use a IsOneWay propriedade para controlar se o cliente aguarda uma resposta antes de concluir 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

ClientOperation(ClientRuntime, String, String)

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

ClientOperation(ClientRuntime, String, String, String)

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

Propriedades

Action

Obtém a ação da operação.

BeginMethod

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

ClientParameterInspectors

Obtém uma coleção de objetos do inspetor de parâmetro usados para exibir ou modificar os parâmetros antes ou após uma chamada de cliente.

DeserializeReply

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

EndMethod

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

FaultContractInfos

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

Formatter

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

IsInitiating

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

IsOneWay

Obtém ou define um valor que indica se a operação é uma operação unidirecional.

IsTerminating

Obtém ou define um valor que indica se esta operação é a última em uma sessão.

Name

Obtém o nome da operação.

ParameterInspectors

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

Parent

Obtém o objeto ClientRuntime recipiente.

ReplyAction

Obtém a ação da mensagem de resposta para esta operação.

SerializeRequest

Obtém ou define um valor que especifica se o objeto Formatter 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 que está associado a uma tarefa.

Métodos

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)

Aplica-se a