ClientOperation Klasse

Definition

Wird verwendet, um das Ausführungsverhalten eines bestimmten Vertragsvorgangs in einem Clientobjekt oder Clientkanalobjekt zu ändern oder zu erweitern. Diese Klasse kann nicht vererbt werden.

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
Vererbung
ClientOperation
Vererbung

Beispiele

Im folgenden Codebeispiel wird ein System.ServiceModel.Description.IEndpointBehavior veranschaulicht, das einen benutzerdefinierten Parameterinspektor in jede ClientOperation in der ClientRuntime.Operations-Eigenschaft einfügt.

#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

Hinweise

Die ClientOperation-Klasse ist der Ort für Änderungen an der Clientlaufzeit und die Einfügemarke für benutzerdefinierte Erweiterungen, die nur auf einen Dienstvorgang abzielen. (Verwenden Sie die -Klasse, um das ClientRuntime Clientlaufzeitverhalten für alle Nachrichten in einem Vertrag zu ändern. )

Installieren Sie ClientOperation-Änderungen unter Verwendung eines benutzerdefinierten Objekts für das Clientverhalten, entweder vom Typ IContractBehavior (um nach einem bestimmten Vorgang zu suchen, der geändert werden soll) oder vom Typ IOperationBehavior (kann dann durch Erstellen eines benutzerdefinierten Attributs angewendet werden).

Verwenden Sie die Operations-Eigenschaft, um das ClientOperation-Objekt zu suchen, das einen bestimmten Dienstvorgang darstellt.

Weitere Informationen zu Clients und der Clientarchitektur finden Sie unter Zugreifen auf Dienste mithilfe eines WCF-Clients und WCF-Clientarchitektur. Weitere Informationen zum Anpassen der Clientlaufzeit finden Sie unter Erweitern von Clients. Weitere Informationen zur Verwendung von Verhaltensweisen finden Sie unter Konfigurieren und Erweitern der Runtime mit Verhalten.

Die folgenden Eigenschaften ermöglichen es Ihnen, benutzerdefinierte Objekte einzufügen oder das Clientausführungsverhalten zu ändern:

  • Verwenden Sie die Formatter-Eigenschaft, um eine benutzerdefinierte IClientMessageFormatter-Implementierung für einen Vorgang einzufügen oder das aktuelle Formatierungsprogramm zu ändern.

  • Verwenden Sie die ParameterInspectors-Eigenschaft, um eine benutzerdefinierte IParameterInspector-Implementierung einzufügen oder die aktuelle Implementierung zu ändern.

  • Verwenden Sie die SerializeRequest-Eigenschaft, um zu steuern, wer eine ausgehende Nachricht serialisiert.

  • Verwenden Sie die DeserializeReply-Eigenschaft, um zu steuern, wer eine eingehende Nachricht deserialisiert.

  • Verwenden Sie die Action-Eigenschaft, um auf die WS-Addressing-Aktion der Anforderungsnachricht zuzugreifen, und die ReplyAction-Eigenschaft, um auf die Aktion der Antwortnachricht zuzugreifen.

  • Verwenden Sie BeginMethod und EndMethod, um anzugeben, welche Clientmethoden einem asynchronen Vorgang zugeordnet werden.

  • Verwenden Sie die FaultContractInfos-Eigenschaft, um eine Auflistung der angegebenen Typen abzurufen, die als Detailtyp in SOAP-Fehlern erscheinen können.

  • Verwenden Sie die IsInitiating-Eigenschaft und die IsTerminating-Eigenschaft, um zu steuern, ob eine Sitzung initiiert bzw. abgebrochen wird, wenn der Vorgang aufgerufen wird.

  • Verwenden Sie die IsOneWay-Eigenschaft, um zu steuern, ob der Client auf eine Antwort wartet, bevor er den Aufruf abschließt.

  • Verwenden Sie die Parent-Eigenschaft, um das darin enthaltene ClientRuntime-Objekt zu ermitteln.

  • Verwenden Sie die Name-Eigenschaft, um den Namen des Vorgangs abzurufen.

  • Verwenden Sie die SyncMethod-Eigenschaft, um zu steuern, welche Methode dem Vorgang zugeordnet wird.

Konstruktoren

ClientOperation(ClientRuntime, String, String)

Initialisiert eine neue Instanz der ClientOperation-Klasse unter Verwendung der angegebenen ClientRuntime, des angegebenen Namens und der Aktionswerte.

ClientOperation(ClientRuntime, String, String, String)

Initialisiert eine neue Instanz der ClientOperation-Klasse unter Verwendung der angegebenen ClientRuntime, des Namens, der Aktion und der Antwortaktionswerte.

Eigenschaften

Action

Ruft die Aktion des Vorgangs ab.

BeginMethod

Ruft die Methode ab, die einem asynchronen Vorgang zugeordnet ist, bzw. legt diese fest.

ClientParameterInspectors

Ruft eine Sammlung von Parameterinspektorobjekten ab, die verwendet werden, um Parameter vor oder im Anschluss an einen Clientaufruf anzuzeigen oder zu ändern.

DeserializeReply

Ruft einen Wert ab, der angibt, ob der Wert der Formatter-Eigenschaft verwendet wird, um die Antwortnachricht zu deserialisieren, bzw. legt diesen fest.

EndMethod

Ruft die Methode ab bzw. legt diese fest, die die asynchrone Endmethode für den Vorgang implementiert.

FaultContractInfos

Ruft eine Auflistung von FaultContractInfo-Objekten ab, die die angegebenen SOAP-Fehler für diesen Vorgang darstellen.

Formatter

Ruft den Formatierer ab, der Objekte in Nachrichten serialisiert und Nachrichten in Objekte deserialisiert, bzw. legt ihn fest.

IsInitiating

Ruft einen Wert ab bzw. legt diesen fest, der angibt, ob eine Sitzung durch eine Nachricht an diesen Vorgang gestartet werden kann.

IsOneWay

Ruft einen Wert ab, der angibt, wenn der Vorgang kein unidirektionaler Vorgang ist, bzw. legt diesen fest.

IsTerminating

Ruft einen Wert ab, der angibt, ob dieser Vorgang der letzte in einer Sitzung ist, bzw. legt diesen fest.

Name

Ruft den Namen des Vorgangs ab.

ParameterInspectors

Ruft eine Auflistung von IParameterInspector-Objekten ab bzw. legt diese fest, die eingehende und ausgehende Objekte für eine bestimmte Clientmethode überprüfen und ändern kann.

Parent

Ruft das ClientRuntime-Objekt auf, das dies enthält.

ReplyAction

Ruft die Aktion der Antwortnachricht für diesen Vorgang ab.

SerializeRequest

Ruft einen Wert ab oder legt diesen fest, der angibt, ob das Formatter-Objekt eine ausgehende Nachricht serialisiert.

SyncMethod

Ruft die Methode ab, die diesem Vorgang zugeordnet ist, oder legt diese fest.

TaskMethod

Ruft die einer Aufgabe zugeordnete Methode ab oder legt diese fest.

TaskTResult

Ruft den Typ des Ergebnisses der Methode ab, die einer Aufgabe zugeordnet ist, oder legt diesen fest.

Methoden

Equals(Object)

Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist.

(Geerbt von Object)
GetHashCode()

Fungiert als Standardhashfunktion.

(Geerbt von Object)
GetType()

Ruft den Type der aktuellen Instanz ab.

(Geerbt von Object)
MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.

(Geerbt von Object)
ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.

(Geerbt von Object)

Gilt für: