ClientOperation 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í.
Se utiliza para modificar o extender el comportamiento de ejecución de una operación de contrato concreta en un objeto de cliente u objeto de canal de cliente. Esta clase no puede heredarse.
public ref class ClientOperation sealed
public ref class ClientOperation sealed : System::ServiceModel::Dispatcher::ClientOperationCompatBase
public sealed class ClientOperation
public sealed class ClientOperation : System.ServiceModel.Dispatcher.ClientOperationCompatBase
type ClientOperation = class
type ClientOperation = class
inherit ClientOperationCompatBase
Public NotInheritable Class ClientOperation
Public NotInheritable Class ClientOperation
Inherits ClientOperationCompatBase
- Herencia
-
ClientOperation
- Herencia
Ejemplos
En el siguiente ejemplo de código se muestra propiedad System.ServiceModel.Description.IEndpointBehavior que inserta un inspector de parámetros personalizado en cada ClientOperation de la propiedad ClientRuntime.Operations.
#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
Comentarios
La clase ClientOperation es la ubicación para las modificaciones del cliente en tiempo de ejecución y el punto de inserción para las extensiones personalizadas cuyo ámbito es solo una operación de servicio. (Para modificar el comportamiento en tiempo de ejecución del cliente para todos los mensajes de un contrato, use la ClientRuntime clase ).
Instale las modificaciones de ClientOperation utilizando un objeto de comportamiento de cliente personalizado, del tipo IContractBehavior (para buscar una operación determinada que se va a modificar) o del tipo IOperationBehavior (que se puede aplicar a continuación creando un atributo personalizado).
Use la propiedad Operations para buscar el objeto ClientOperation que representa una operación de servicio determinada.
Para obtener más información sobre los clientes y la arquitectura de cliente, vea Accessing Services Using a WCF Client and WCF Client Architecture. Para obtener más información sobre cómo personalizar el tiempo de ejecución del cliente, consulte Extensión de clientes. Para obtener más información sobre el uso de comportamientos, vea Configuring and Extend the Runtime with Behaviors.
Las propiedades siguientes le permiten insertar objetos personalizados o modificar el comportamiento de ejecución del cliente:
Use la propiedad Formatter para insertar una implementación personalizada de IClientMessageFormatter para una operación o modificar el formateador actual.
Use la propiedad ParameterInspectors para insertar una implementación personalizada de IParameterInspector o modificar la actual.
Use la propiedad SerializeRequest para controlar quién serializa un mensaje saliente.
Use la propiedad DeserializeReply para controlar quién deserializa un mensaje entrante.
Use la propiedad Action para tener acceso a la acción de WS-Addressing del mensaje de solicitud y la propiedad ReplyAction para tener acceso a la acción de mensaje de respuesta.
Use las propiedades BeginMethod y EndMethod para especificar qué métodos de cliente están asociados a una operación asincrónica.
Use la propiedad FaultContractInfos para obtener una colección de tipos especificados que pueden aparecer en errores de SOAP como tipo de detalle.
Use las propiedades IsInitiating y IsTerminating para controlar si una sesión se inicia o se anula, respectivamente, cuando se llama a la operación.
Use la propiedad IsOneWay para controlar si el cliente espera a recibir una respuesta antes de completar la invocación.
Use la propiedad Parent para obtener el objeto ClientRuntime contenedor.
Use la propiedad Name para obtener el nombre de la operación.
Use la propiedad SyncMethod para controlar qué método se asigna a la operación.
Constructores
ClientOperation(ClientRuntime, String, String) |
Inicializa una nueva instancia de la clase ClientOperation mediante los valores especificados de ClientRuntime, nombre y acción. |
ClientOperation(ClientRuntime, String, String, String) |
Inicializa una nueva instancia de la clase ClientOperation mediante los valores especificados de ClientRuntime, nombre, acción y respuesta. |
Propiedades
Action |
Obtiene la acción de la operación. |
BeginMethod |
Obtiene o establece el método asociado a una operación asincrónica. |
ClientParameterInspectors |
Obtiene una colección de objetos de inspector de parámetro utilizados para ver o modificar los parámetros antes o después de una llamada del cliente. |
DeserializeReply |
Obtiene o establece un valor que indica si el valor de la propiedad Formatter se utiliza para deserializar el mensaje de respuesta. |
EndMethod |
Obtiene o establece el método que implementa el método de fin asincrónico para la operación. |
FaultContractInfos |
Obtiene una colección de objetos FaultContractInfo que representan los errores de SOAP especificados para esta operación. |
Formatter |
Obtiene o establece el formateador que serializa objetos en mensajes y deserializa mensajes en objetos. |
IsInitiating |
Obtiene o establece un valor que indica si un mensaje a esta operación puede iniciar una sesión. |
IsOneWay |
Obtiene o establece un valor que indica si la operación es una operación unidireccional. |
IsTerminating |
Obtiene o establece un valor que indica si esta operación es la última una de una sesión. |
Name |
Obtiene el nombre de la operación. |
ParameterInspectors |
Obtiene o establece una colección de los objetos IParameterInspector que pueden inspeccionar y modificar objetos entrantes y salientes para un método de cliente determinado. |
Parent |
Obtiene el objeto ClientRuntime contenedor. |
ReplyAction |
Obtiene la acción del mensaje de respuesta para esta operación. |
SerializeRequest |
Obtiene o establece un valor que especifica si el objeto Formatter serializa un mensaje saliente. |
SyncMethod |
Obtiene o establece el método asociado a esta operación. |
TaskMethod |
Obtiene o establece el método asociado a una tarea. |
TaskTResult |
Obtiene o establece el tipo de resultado del método que está asociado a una tarea. |
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) |