ClientOperation Clase

Definición

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)

Se aplica a