Compartir a través de


ClientRuntime Clase

Definición

Representa el punto de inserción de las clases que extienden la funcionalidad de objetos de cliente Windows Communication Foundation (WCF) para todos los mensajes controlados por una aplicación 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
Herencia
ClientRuntime
Herencia

Ejemplos

En el siguiente ejemplo de código, un objeto System.ServiceModel.Description.IEndpointBehavior inserta System.ServiceModel.Dispatcher.IClientMessageInspector en tiempo de ejecución del cliente agregándolo a la propiedad MessageInspectors.

#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

En el ejemplo de código siguiente se muestra un archivo de configuración que carga el comportamiento del punto de conexión en el punto de conexión del 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>

Comentarios

Las aplicaciones cliente de Communication Foundation (WCF) Windows usan una extensión de ClientBase<TChannel> o de IClientChannel, para convertir llamadas de método en mensajes salientes y convertir mensajes entrantes en objetos y pasarlos a los resultados de los métodos de cliente.

La clase ClientRuntime es un punto de extensibilidad al que puede agregar objetos de extensión que interceptan los mensajes y extienden el comportamiento del cliente por todas las operaciones. Los objetos de interceptación pueden procesar todos los mensajes de un contrato determinado, procesar solo los mensajes para operaciones determinadas, realizar la inicialización personalizada de canales e implementar otro comportamiento de aplicación cliente personalizado. Para obtener información general sobre la arquitectura de cliente, consulte Arquitectura de cliente WCF. Para obtener más información sobre la programación de cliente, vea Acceso a servicios mediante un cliente WCF. Para obtener más información sobre las personalizaciones y cómo realizarlas, consulte Extensión de clientes.

  • La propiedad CallbackDispatchRuntime devuelve el objeto en tiempo de ejecución de envío para las operaciones de devolución de llamada iniciadas por el servicio.

  • La propiedad OperationSelector acepta un objeto de selector de operaciones personalizado para controlar el enrutamiento de mensajes del cliente.

  • La propiedad ChannelInitializers habilita la adición de un inicializador de canales que puede inspeccionar o modificar el canal del cliente.

  • La propiedad InteractiveChannelInitializers se puede utilizar para mostrar un indicador visual que permita al usuario seleccionar credenciales antes de abrir el canal.

  • La propiedad Operations obtiene una colección de objetos ClientOperation a la que puede agregar interceptores de mensajes personalizados que proporcionan funcionalidad específica a los mensajes de esa operación.

  • La propiedad ManualAddressing permite a una aplicación desactivar algunos encabezados de direccionamiento automáticos para controlar directamente el direccionamiento.

  • La propiedad MaxFaultSize permite al cliente limitar el tamaño de los mensajes de error que acepta el cliente.

  • La propiedad MessageInspectors obtiene una colección de objetos IClientMessageInspector a la que puede agregar interceptores de mensajes personalizados para todos los mensajes que se desplazan por un cliente.

  • La propiedad UnhandledClientOperation devuelve la operación a la que se pasan los mensajes inesperados.

  • La propiedad ValidateMustUnderstand informa al sistema sobre si debe confirmar que los encabezados SOAP marcados como MustUnderstand han sido, de hecho, entendidos.

  • La propiedad Via establece el valor del destino del mensaje en el nivel de transporte para admitir intermediarios y otros escenarios.

Hay, además, otras varias propiedades que recuperan la información de contrato del cliente:

Si el cliente es un cliente dúplex, las propiedades siguientes también recuperan el tipo de devolución de llamada y el tiempo de ejecución del cliente:

Propiedades

CallbackClientType

Obtiene o establece el tipo de contrato de devolución de llamada asociado a un cliente dúplex.

CallbackDispatchRuntime

Obtiene el tiempo de ejecución de envío que envía las operaciones iniciadas por el servicio.

ChannelInitializers

Obtiene una colección de objetos de inicializador de canal utilizados para personalizar el canal asociado a un cliente.

ClientMessageInspectors

Obtiene una colección de objetos de inspector de mensaje utilizados para ver o modificar mensajes de una operación de servicio determinada.

ClientOperations

Obtiene una colección de objetos de operación de cliente utilizados para adjuntar objetos de extensión que inspeccionan o modifican los mensajes y el comportamiento de una operación de servicio en concreto.

ContractClientType

Obtiene o establece el tipo del contrato asociado a un cliente.

ContractName

Obtiene el nombre del contrato asociado a un cliente.

ContractNamespace

Obtiene el espacio de nombres del contrato asociado a un cliente.

InteractiveChannelInitializers

Obtiene una colección de un inicializador interactivo de canal.

ManualAddressing

Obtiene o establece un valor que indica si el cliente agrega encabezados de direccionamiento a mensajes de respuesta-solicitud.

MaxFaultSize

Obtiene o establece el tamaño máximo del error.

MessageInspectors

Obtiene una colección de implementaciones de inspector de mensajes para un cliente.

MessageVersionNoneFaultsEnabled

Obtiene o establece un valor que indica si la propiedad MessageVersionNoneFaultsEnabled está establecida.

Operations

Obtiene una colección de operaciones de cliente para un cliente.

OperationSelector

Obtiene o establece una implementación IClientOperationSelector que se puede utilizar para seleccionar un objeto ClientOperation.

UnhandledClientOperation

Obtiene la operación del cliente para los métodos que no tienen ningún objeto ClientOperation correspondiente en la colección de la propiedad Operations.

ValidateMustUnderstand

Obtiene o establece un valor que especifica si el sistema o la aplicación exige el procesamiento de encabezados MustUnderstand de SOAP.

Via

Obtiene o establece la dirección de transporte que se utiliza para enviar los mensajes a través del cliente.

Métodos

Equals(Object)

Determina si el objeto especificado es igual que el objeto actual.

(Heredado de Object)
GetHashCode()

Sirve como la función hash predeterminada.

(Heredado de Object)
GetType()

Obtiene el Type de la instancia actual.

(Heredado de Object)
MemberwiseClone()

Crea una copia superficial del Object actual.

(Heredado de Object)
ToString()

Devuelve una cadena que representa el objeto actual.

(Heredado de Object)

Se aplica a