ClientOperation Classe

Definizione

Classe utilizzata per modificare o estendere il comportamento di esecuzione di un'operazione del contratto specifica in un oggetto client o in un oggetto del canale client. La classe non può essere ereditata.

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
Ereditarietà
ClientOperation
Ereditarietà

Esempio

Nell'esempio di codice seguente viene illustrato come un'interfaccia System.ServiceModel.Description.IEndpointBehavior inserisce un controllo del parametro personalizzato in ClientOperation nella proprietà 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

Commenti

Nella classe ClientOperation è possibile eseguire modifiche della fase di esecuzione del client e questa classe rappresenta il punto di inserimento per le estensioni personalizzate nell'ambito di una sola operazione del servizio. Per modificare il comportamento di runtime del client per tutti i messaggi in un contratto, usare la ClientRuntime classe .

Installare le modifiche di ClientOperation utilizzando un oggetto di comportamento client personalizzato di tipo IContractBehavior (per individuare un'operazione specifica da modificare) o di tipo IOperationBehavior (il quale può essere applicato creando un attributo personalizzato).

Usare la proprietà Operations per individuare l'oggetto ClientOperation che rappresenta un'operazione specifica del servizio.

Per altre informazioni sui client e sull'architettura client, vedere Accesso ai servizi tramite un client WCF e un'architettura client WCF. Per altre informazioni sulla personalizzazione del runtime client, vedere Estensione dei client. Per altre informazioni sull'uso dei comportamenti, vedere Configurazione ed estensione del runtime con comportamenti.

Le proprietà seguenti consentono di inserire oggetti personalizzati o di modificare il comportamento di esecuzione del client:

  • Utilizzare la proprietà Formatter per inserire un'implementazione personalizzata dell'interfaccia IClientMessageFormatter di un'operazione o per modificare il formattatore corrente.

  • Utilizzare la proprietà ParameterInspectors per inserire un'implementazione personalizzata dell'interfaccia IParameterInspector o per modificare l'interfaccia corrente.

  • Utilizzare la proprietà SerializeRequest per controllare chi serializza un messaggio in uscita.

  • Utilizzare la proprietà DeserializeReply per controllare chi deserializza un messaggio in entrata.

  • Utilizzare la proprietà Action per accedere all'azione WS-Addressing del messaggio di richiesta e la proprietà ReplyAction per accedere all'azione del messaggio di risposta.

  • Utilizzare le proprietà BeginMethod e EndMethod per specificare quali metodi del client vengono associati a un'operazione asincrona.

  • Utilizzare la proprietà FaultContractInfos per ottenere una raccolta di tipi specificati che possono comparire negli errori SOAP come tipi di dettaglio.

  • Utilizzare le proprietà IsInitiating e IsTerminating per controllare se una sessione viene rispettivamente avviata o eliminata quando viene chiamata l'operazione.

  • Utilizzare la proprietà IsOneWay per controllare se il client attende una risposta prima di completare la chiamata.

  • Utilizzare la proprietà Parent per ottenere l'oggetto contenitore ClientRuntime.

  • Utilizzare la proprietà Name per ottenere il nome dell'operazione.

  • Utilizzare la proprietà SyncMethod per controllare quale metodo viene mappato all'operazione.

Costruttori

ClientOperation(ClientRuntime, String, String)

Inizializza una nuova istanza della classe ClientOperation utilizzando i valori di nome e azione ClientRuntime specificati.

ClientOperation(ClientRuntime, String, String, String)

Inizializza una nuova istanza della classe ClientOperation utilizzando i valori di nome, azione e azione di risposta ClientRuntime specificati.

Proprietà

Action

Ottiene l'azione dell'operazione.

BeginMethod

Ottiene o imposta il metodo associato all'operazione asincrona.

ClientParameterInspectors

Ottiene una raccolta di oggetti di controllo parametri utilizzati per visualizzare o modificare i parametri prima o dopo una chiamata client.

DeserializeReply

Ottiene o imposta un valore che indica se il valore della proprietà Formatter viene utilizzato per deserializzare il messaggio di risposta.

EndMethod

Ottiene o imposta il metodo che implementa il metodo End asincrono per l'operazione.

FaultContractInfos

Ottiene una raccolta di oggetti FaultContractInfo che rappresentano gli errori SOAP specificati per questa operazione.

Formatter

Ottiene o imposta il formattatore che serializza gli oggetti in messaggi e deserializza i messaggi in oggetti.

IsInitiating

Ottiene o imposta un valore che indica se una sessione può essere avviata da un messaggio dell'operazione.

IsOneWay

Ottiene o imposta un valore che indica se l'operazione è unidirezionale.

IsTerminating

Ottiene o imposta un valore che indica se l'operazione è l'ultima in una sessione.

Name

Ottiene il nome dell'operazione.

ParameterInspectors

Ottiene o imposta una raccolta di oggetti IParameterInspector che possono controllare e modificare oggetti in entrata e in uscita per un metodo client specifico.

Parent

Ottiene l'oggetto contenitore ClientRuntime.

ReplyAction

Ottiene l'azione del messaggio di risposta dell'operazione.

SerializeRequest

Ottiene o imposta un valore che specifica se l'oggetto Formatter serializza un messaggio in uscita.

SyncMethod

Ottiene o imposta il metodo associato all'operazione.

TaskMethod

Ottiene o imposta il metodo associata a un'attività.

TaskTResult

Ottiene o imposta il tipo del risultato del metodo associato a un'attività.

Metodi

Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.

(Ereditato da Object)
GetHashCode()

Funge da funzione hash predefinita.

(Ereditato da Object)
GetType()

Ottiene l'oggetto Type dell'istanza corrente.

(Ereditato da Object)
MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.

(Ereditato da Object)
ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.

(Ereditato da Object)

Si applica a