ClientRuntime Classe
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
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
MustUnderstandterã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 |
| 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) |