ClientRuntime Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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 |
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) |