ClientRuntime Classe

Definição

Representa o ponto de inserção para classes que estendem a funcionalidade dos objetos cliente do Windows Communication Foundation (WCF) para todas as mensagens tratadas por uma aplicação 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 seguinte, insere-se System.ServiceModel.Description.IEndpointBehavior a 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 seguinte mostra um ficheiro de configuração que carrega o comportamento do endpoint no endpoint 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>

Observações

Os objetos cliente WCF, sejam eles uma extensão de ClientBase<TChannel> ou de IClientChannel, são usados por aplicações cliente Windows Communication Foundation (WCF) para converter chamadas de método em mensagens de saída e converter mensagens recebidas em objetos, passando-as aos resultados dos métodos cliente.

A ClientRuntime classe é um ponto de extensibilidade ao qual pode adicionar objetos de extensão que intercetam mensagens e estendem o comportamento do cliente em todas as operações. Os objetos de intercetação podem processar todas as mensagens em um contrato específico, processar apenas mensagens para operações específicas, executar inicialização de canal personalizado e implementar outro comportamento de aplicativo cliente personalizado. Para uma visão geral da arquitetura do cliente, veja Arquitetura do Cliente WCF. Para mais informações sobre programação de clientes, consulte Aceder a Serviços Usando um Cliente WCF. Para detalhes sobre personalizações e como as realizar, consulte Extensão de Clientes.

  • A CallbackDispatchRuntime propriedade devolve o objeto de execução de despacho para operações de callback iniciadas pelo serviço.

  • A OperationSelector propriedade aceita um objeto seletor de operações personalizado para controlar o encaminhamento das mensagens do cliente.

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

  • A InteractiveChannelInitializers propriedade pode ser usada para mostrar um prompt visual que permita ao utilizador selecionar credenciais antes de abrir o canal.

  • A propriedade Operations obtém uma coleção de objetos aos quais podem ser adicionados intercetadores personalizados de mensagens ClientOperation, que fornecem funcionalidade específica para as mensagens da operação.

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

  • Esta MaxFaultSize propriedade permite ao cliente limitar o tamanho das mensagens de falha que o cliente aceita.

  • A MessageInspectors propriedade recebe uma coleção de IClientMessageInspector objetos aos quais pode adicionar interceptores de mensagens personalizados para todas as mensagens que viajam através de um cliente.

  • A UnhandledClientOperation propriedade devolve a operação para a qual são passadas mensagens inesperadas.

  • A ValidateMustUnderstand propriedade informa o sistema se deve confirmar que os cabeçalhos SOAP marcados como MustUnderstand terão, de facto, sido compreendidos.

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

Além disso, existem várias outras propriedades que recuperam a informação do contrato do cliente:

Se o cliente for um cliente duplex, as seguintes propriedades também recuperam o tipo de callback e o tempo de execução do cliente:

Propriedades

Name Description
CallbackClientType

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

CallbackDispatchRuntime

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

ChannelInitializers

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

ClientMessageInspectors

Obtém uma coleção de objetos de inspetor de mensagens usados para visualizar ou modificar mensagens de uma determinada operação de serviço.

ClientOperations

Obtém uma coleção de objetos de operação cliente usados para anexar objetos de extensão que inspecionam ou modificam mensagens e o comportamento de uma determinada operação de serviço.

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

Recebe uma coleção de um inicializador de canal interativo.

ManualAddressing

Recebe ou define um valor que indica se o cliente adiciona cabeçalhos de endereçamento às mensagens de pedido-resposta.

MaxFaultSize

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

MessageInspectors

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

MessageVersionNoneFaultsEnabled

Recebe ou define um valor que indica se a propriedade MessageVersionNoneFaultsEnabled está definida.

Operations

Recebe uma coleção de operações de cliente para um cliente.

OperationSelector

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

UnhandledClientOperation

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

ValidateMustUnderstand

Recebe ou define um valor que especifica se o sistema ou a aplicação impõe o processamento de cabeçalhos SOAP MustUnderstand .

Via

Obtém ou define o endereço de transporte que é usado para enviar mensagens através do cliente.

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