Partilhar via


ClientRuntime Classe

Definição

Representa o ponto de inserção para classes que estendem a funcionalidade dos objetos de cliente WCF (Windows Communication Foundation) para todas as mensagens manipuladas por um aplicativo cliente.

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

Exemplos

No exemplo de código a seguir, um System.ServiceModel.Description.IEndpointBehavior insere um System.ServiceModel.Dispatcher.IClientMessageInspector no runtime do cliente adicionando-o MessageInspectors à 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

O exemplo de código a seguir mostra um arquivo de configuração que carrega o comportamento do ponto de extremidade no ponto de extremidade do cliente.

  <client>
      <endpoint 
        address="http://localhost:8080/SampleService" 
        behaviorConfiguration="clientInspectorsAdded" 
        binding="wsHttpBinding"
        bindingConfiguration="WSHttpBinding_ISampleService" 
        contract="ISampleService"
        name="WSHttpBinding_ISampleService"
      >
      </endpoint>
  </client>
<behaviors>
  <endpointBehaviors>
    <behavior name="clientInspectorsAdded">
      <clientInterceptors />
    </behavior>
  </endpointBehaviors>
</behaviors>
<extensions>
  <behaviorExtensions>
    <add 
      name="clientInterceptors" 
      type="Microsoft.WCF.Documentation.InspectorInserter, HostApplication, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null"
  />
  </behaviorExtensions>
</extensions>

Comentários

Os objetos do cliente WCF, seja uma extensão de ClientBase<TChannel> ou de IClientChannel, são usados por aplicativos cliente do WCF (Windows Communication Foundation) para converter chamadas de método em mensagens de saída e converter mensagens de entrada em objetos e passá-las para os resultados dos métodos do cliente.

A ClientRuntime classe é um ponto de extensibilidade ao qual você pode adicionar objetos de extensão que interceptam mensagens e estendem o comportamento do cliente em todas as operações. Objetos de interceptação podem processar todas as mensagens em um contrato específico, processar somente mensagens para operações específicas, executar inicialização de canal personalizado e implementar outro comportamento de aplicativo cliente personalizado. Para obter uma visão geral da arquitetura do cliente, consulte a Arquitetura do Cliente do WCF. Para obter mais informações sobre a programação do cliente, consulte Acessando serviços usando um cliente WCF. Para obter detalhes sobre personalizações e como executá-las, consulte Estender clientes.

  • A CallbackDispatchRuntime propriedade retorna o objeto de tempo de execução de expedição para operações de retorno de chamada iniciadas pelo serviço.

  • A OperationSelector propriedade aceita um objeto seletor de operação personalizado para controlar o roteamento de mensagens do cliente.

  • A ChannelInitializers propriedade permite a adição de um inicializador de canal que pode inspecionar ou modificar o canal cliente.

  • A InteractiveChannelInitializers propriedade pode ser usada para exibir um prompt visual para permitir que um usuário selecione credenciais antes de abrir o canal.

  • A Operations propriedade obtém uma coleção de ClientOperation objetos aos quais você pode adicionar interceptadores de mensagens personalizados que fornecem funcionalidades específicas às mensagens dessa operação.

  • A ManualAddressing propriedade permite que um aplicativo desative alguns cabeçalhos de endereçamento automáticos para controlar diretamente o endereçamento.

  • A MaxFaultSize propriedade permite que o cliente limite o tamanho das mensagens de falha aceitas pelo cliente.

  • A MessageInspectors propriedade obtém uma coleção de IClientMessageInspector objetos aos quais você pode adicionar interceptadores de mensagens personalizados para todas as mensagens que viajam por um cliente.

  • A UnhandledClientOperation propriedade retorna a operação à qual mensagens inesperadas são passadas.

  • A ValidateMustUnderstand propriedade informa ao sistema se ele deve confirmar se os cabeçalhos SOAP marcados como MustUnderstand foram, de fato, compreendidos.

  • A Via propriedade define o valor do destino da mensagem no nível de transporte para dar suporte a intermediários e outros cenários.

Além disso, há várias outras propriedades que recuperam as informações do contrato do cliente:

Se o cliente for um cliente duplex, as seguintes propriedades também recuperarão o tipo de retorno de chamada do cliente e o runtime:

Propriedades

CallbackClientType

Obtém ou define o tipo de contrato do retorno de chamada associado a um cliente duplex.

CallbackDispatchRuntime

Obtém o tempo de execução de expedição que expede operações iniciadas pelo serviço.

ChannelInitializers

Obtém uma coleção de objetos de inicializador de canal usados para personalizar o canal associado a um cliente.

ClientMessageInspectors

Obtém uma coleção de objetos do inspetor de mensagens usado para exibir ou modificar as mensagens de uma operação de serviço específico.

ClientOperations

Obtém uma coleção de objetos de operação de cliente usado para anexar os objetos de extensão que inspecionam ou modificam as mensagens e o comportamento de uma operação de serviço específica.

ContractClientType

Obtém ou define o tipo de contrato associado a um cliente.

ContractName

Obtém o nome do contrato associado a um cliente.

ContractNamespace

Obtém o namespace do contrato associado a um cliente.

InteractiveChannelInitializers

Obtém uma coleção de um inicializador interativo de canal.

ManualAddressing

Obtém ou define um valor que indica se o cliente adiciona cabeçalhos de endereçamento para mensagens de solicitação/resposta.

MaxFaultSize

Obtém ou define o tamanho máximo de falha.

MessageInspectors

Obtém uma coleção de implementações do inspetor de mensagens para um cliente.

MessageVersionNoneFaultsEnabled

Obtém ou define um valor que indica se a propriedade MessageVersionNoneFaultsEnabled está definida.

Operations

Obtém uma coleção de operações do cliente para um cliente.

OperationSelector

Obtém ou define uma implementação de IClientOperationSelector que pode ser usada para selecionar um ClientOperation.

UnhandledClientOperation

Obtém a operação de cliente para métodos que não têm um ClientOperation correspondente na coleção Operations.

ValidateMustUnderstand

Obtém ou define um valor que especifica se o sistema ou o aplicativo reforça o processamento de cabeçalho SOAP MustUnderstand.

Via

Obtém ou define o endereço de transporte usado para enviar mensagens por meio do cliente.

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