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.Represents the insertion point for classes that extend the functionality of Windows Communication Foundation (WCF) client objects for all messages handled by a client application.

public ref class ClientRuntime sealed
public sealed class ClientRuntime
type ClientRuntime = class
Public NotInheritable Class ClientRuntime
Herança
ClientRuntime

Exemplos

No exemplo de código a seguir, um System.ServiceModel.Description.IEndpointBehavior insere um System.ServiceModel.Dispatcher.IClientMessageInspector no tempo de execução do cliente adicionando-o à propriedade MessageInspectors.In the following code example an System.ServiceModel.Description.IEndpointBehavior inserts a System.ServiceModel.Dispatcher.IClientMessageInspector into the client runtime by adding it to the MessageInspectors property.

#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.The following code example shows a configuration file that loads the endpoint behavior into the client endpoint.

  <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 de cliente WCF, se uma extensão de ClientBase<TChannel> ou de IClientChannel, são usados por aplicativos cliente Windows Communication Foundation (WCF) para converter chamadas de método em mensagens de saída e converter mensagens de entrada em objetos e passá-las para os resultados de métodos de cliente.WCF client objects, whether an extension of ClientBase<TChannel> or of IClientChannel, are used by Windows Communication Foundation (WCF) client applications to convert method calls into outbound messages and convert incoming messages to objects and pass them to the results of client methods.

A classe ClientRuntime é 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.The ClientRuntime class is an extensibility point to which you can add extension objects that intercept messages and extend client behavior across all operations. Os objetos de interceptação podem processar todas as mensagens em um contrato específico, processar somente mensagens para operações específicas, executar a inicialização de canal personalizado e implementar outro comportamento de aplicativo cliente personalizado.Interception objects can process all messages in a particular contract, process only messages for particular operations, perform custom channel initialization, and implement other custom client application behavior. Para obter uma visão geral da arquitetura do cliente, consulte arquitetura do cliente WCF.For an overview of client architecture, see WCF Client Architecture. Para obter mais informações sobre a programação de cliente, consulte acessando serviços usando um cliente WCF.For more information about client programming, see Accessing Services Using a WCF Client. Para obter detalhes sobre as personalizações e como executá-las, consulte estendendo clientes.For details about customizations and how to perform them, see Extending Clients.

  • A propriedade CallbackDispatchRuntime retorna o objeto de tempo de execução de expedição para operações de retorno de chamada iniciadas pelo serviço.The CallbackDispatchRuntime property returns the dispatch run-time object for service-initiated callback operations.

  • A propriedade OperationSelector aceita um objeto seletor de operação personalizada para controlar o roteamento de mensagens do cliente.The OperationSelector property accepts a custom operation selector object to control the routing of client messages.

  • A propriedade ChannelInitializers permite a adição de um inicializador de canal que pode inspecionar ou modificar o canal do cliente.The ChannelInitializers property enables the addition of a channel initializer that can inspect or modify the client channel.

  • A propriedade InteractiveChannelInitializers pode ser usada para exibir um prompt Visual para permitir que um usuário selecione credenciais antes de abrir o canal.The InteractiveChannelInitializers property can be used to display a visual prompt to enable a user to select credentials prior to opening the channel.

  • A propriedade Operations Obtém uma coleção de objetos ClientOperation para os quais você pode adicionar interceptadores de mensagens personalizados que fornecem funcionalidade específica para as mensagens da operação.The Operations property gets a collection of ClientOperation objects to which you can add custom message interceptors that provide functionality specific to the messages of that operation.

  • A propriedade ManualAddressing permite que um aplicativo desative alguns cabeçalhos de endereçamento automáticos para controlar diretamente o endereçamento.The ManualAddressing property enables an application to turn off some automatic addressing headers to directly control addressing.

  • A propriedade MaxFaultSize permite que o cliente limite o tamanho das mensagens de falha que o cliente aceita.The MaxFaultSize property enables the client to limit the size of fault messages that the client accepts.

  • A propriedade MessageInspectors Obtém uma coleção de objetos IClientMessageInspector para os quais você pode adicionar interceptadores de mensagens personalizados para todas as mensagens que viajam por um cliente.The MessageInspectors property gets a collection of IClientMessageInspector objects to which you can add custom message interceptors for all messages traveling through a client.

  • A propriedade UnhandledClientOperation retorna a operação à qual as mensagens inesperadas são passadas.The UnhandledClientOperation property returns the operation to which unexpected messages are passed.

  • A propriedade ValidateMustUnderstand informa ao sistema se ele deve confirmar se os cabeçalhos SOAP marcados como MustUnderstand realmente foram compreendidos.The ValidateMustUnderstand property informs the system whether it should confirm that SOAP headers marked as MustUnderstand have, in fact, been understood.

  • A propriedade Via define o valor do destino da mensagem no nível de transporte para dar suporte a intermediários e outros cenários.The Via property sets the value of the destination of the message at the transport level to support intermediaries and other scenarios.

Além disso, há várias outras propriedades que recuperam as informações de contrato do cliente:In addition, there are a number of other properties that retrieve the client contract information:

Se o cliente for um cliente duplex, as propriedades a seguir também recuperarão o tipo de retorno de chamada e o tempo de execução do cliente:If the client is a duplex client, the following properties also retrieve the client callback type and runtime:

Propriedades

CallbackClientType

Obtém ou define o tipo de contrato do retorno de chamada associado a um cliente duplex.Gets or sets the type of the callback contract associated with a duplex client.

CallbackDispatchRuntime

Obtém o tempo de execução de expedição que expede operações iniciadas pelo serviço.Gets the dispatch run-time that dispatches service-initiated operations.

ChannelInitializers

Obtém uma coleção de objetos de inicializador de canal usados para personalizar o canal associado a um cliente.Gets a collection of channel initializer objects used to customize the channel associated with a client.

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.Gets a collection of message inspector objects used to view or modify messages of a particular service operation.

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.Gets a collection of client operation objects used to attach extension objects that inspect or modify messages and behavior of a particular service operation.

ContractClientType

Obtém ou define o tipo de contrato associado a um cliente.Gets or sets the type of the contract associated with a client.

ContractName

Obtém o nome do contrato associado a um cliente.Gets the name of the contract associated with a client.

ContractNamespace

Obtém o namespace do contrato associado a um cliente.Gets the namespace of the contract associated with a client.

InteractiveChannelInitializers

Obtém uma coleção de um inicializador interativo de canal.Gets a collection of an interactive channel initializer.

ManualAddressing

Obtém ou define um valor que indica se o cliente adiciona cabeçalhos de endereçamento para mensagens de solicitação/resposta.Gets or sets a value that indicates whether the client adds addressing headers to request-reply messages.

MaxFaultSize

Obtém ou define o tamanho máximo de falha.Gets or sets the maximum fault size.

MessageInspectors

Obtém uma coleção de implementações do inspetor de mensagens para um cliente.Gets a collection of message inspector implementations for a client.

MessageVersionNoneFaultsEnabled

Obtém ou define um valor que indica se a propriedade MessageVersionNoneFaultsEnabled está definida.Gets or sets a value that indicates whether the MessageVersionNoneFaultsEnabled property is set.

Operations

Obtém uma coleção de operações do cliente para um cliente.Gets a collection of client operations for a client.

OperationSelector

Obtém ou define uma implementação de IClientOperationSelector que pode ser usada para selecionar um ClientOperation.Gets or sets an IClientOperationSelector implementation that can be used to select a ClientOperation.

UnhandledClientOperation

Obtém a operação de cliente para métodos que não têm um ClientOperation correspondente na coleção Operations.Gets the client operation for methods that do not have a corresponding ClientOperation in the Operations collection.

ValidateMustUnderstand

Obtém ou define um valor que especifica se o sistema ou o aplicativo reforça o processamento de cabeçalho SOAP MustUnderstand.Gets or sets a value that specifies whether the system or the application enforces SOAP MustUnderstand header processing.

Via

Obtém ou define o endereço de transporte usado para enviar mensagens por meio do cliente.Gets or sets the transport address that is used to send messages through the client.

Métodos

Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.Determines whether the specified object is equal to the current object.

(Herdado de Object)
GetHashCode()

Serve como a função de hash padrão.Serves as the default hash function.

(Herdado de Object)
GetType()

Obtém o Type da instância atual.Gets the Type of the current instance.

(Herdado de Object)
MemberwiseClone()

Cria uma cópia superficial do Object atual.Creates a shallow copy of the current Object.

(Herdado de Object)
ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.Returns a string that represents the current object.

(Herdado de Object)

Aplica-se a