ClientRuntime 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 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 |
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) |