Freigeben über


ClientRuntime Klasse

Definition

Stellt die Einfügemarke für Klassen, die den Funktionsumfang von WCF-Clientobjekten (Windows Communication Foundation) für alle durch die Clientanwendung verarbeiteten Nachrichten erweitert.

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

Beispiele

Im folgenden Codebeispiel fügt ein System.ServiceModel.Description.IEndpointBehavior einen System.ServiceModel.Dispatcher.IClientMessageInspector in die Clientlaufzeit ein, indem dieser der MessageInspectors-Eigenschaft hinzugefügt wird.

#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

Das folgende Codebeispiel zeigt eine Konfigurationsdatei, die das Endpunktverhalten in den Clientendpunkt lädt.

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

Hinweise

WCF-Clientobjekte, ob eine Erweiterung oder ClientBase<TChannel> von IClientChannel, werden von Windows Communication Foundation (WCF)-Clientanwendungen verwendet, um Methodenaufrufe in ausgehende Nachrichten zu konvertieren und eingehende Nachrichten in Objekte zu konvertieren und sie an die Ergebnisse von Clientmethoden zu übergeben.

Die ClientRuntime-Klasse ist ein Erweiterungspunkt, an den Sie Erweiterungsobjekte anhängen können, die Nachrichten abfangen und das Clientverhalten auf alle Vorgänge ausdehnen. Abfangobjekte können alle Nachrichten in einem bestimmten Vertrag verarbeiten, nur Nachrichten für bestimmte Vorgänge verarbeiten, eine benutzerdefinierte Kanalinitialisierung durchführen und sonstiges benutzerdefiniertes Verhalten von Clientanwendungen implementieren. Eine Übersicht über die Clientarchitektur finden Sie unter WCF-Clientarchitektur. Weitere Informationen zur Clientprogrammierung finden Sie unter "Zugreifen auf Dienste mithilfe eines WCF-Clients". Ausführliche Informationen zu Anpassungen und deren Durchführung finden Sie unter Erweitern von Clients.

  • Die CallbackDispatchRuntime-Eigenschaft gibt das DispatchRuntime-Objekt für durch Dienste initiierte Rückrufvorgänge zurück.

  • Die OperationSelector-Eigenschaft akzeptiert ein benutzerdefiniertes Vorgangsauswahlobjekt, um das Routing von Clientnachrichten zu steuern.

  • Die ChannelInitializers-Eigenschaft ermöglicht das Hinzufügen eines Kanalinitialisierers, der den Clientkanal prüfen oder abändern kann.

  • Die InteractiveChannelInitializers-Eigenschaft kann zum Anzeigen einer visuellen Eingabeaufforderung verwendet werden, die es einem Benutzer ermöglicht, vor dem Öffnen eines Kanals Anmeldeinformationen auszuwählen.

  • Die Operations-Eigenschaft ruft eine Auflistung von ClientOperation-Objekten ab, denen Sie benutzerdefinierte Nachrichteninterceptoren hinzufügen können, die spezielle Funktionen für die Nachrichten dieses Vorgangs bereitstellen.

  • Die ManualAddressing-Eigenschaft ermöglicht einer Anwendung, bestimmte automatische Adressierungsheader zu deaktivieren, um die Adressierung direkt zu steuern.

  • Die MaxFaultSize-Eigenschaft ermöglicht es dem Client, die Größe der Fehlermeldungen einzuschränken, die der Client entgegennimmt.

  • Die MessageInspectors-Eigenschaft ruft eine Auflistung von IClientMessageInspector-Objekten ab, denen Sie benutzerdefinierte Nachrichteninterceptoren für alle Nachrichten hinzufügen können, die einen Client durchlaufen.

  • Die UnhandledClientOperation-Eigenschaft gibt den Vorgang zurück, an den unerwartete Nachrichten übergeben werden.

  • Die ValidateMustUnderstand-Eigenschaft informiert das System, ob es prüfen sollte, dass als MustUnderstand markierte SOAP-Header in der Tat verstanden wurden.

  • Die Via-Eigenschaft legt den Wert des Ziels der Nachricht auf der Transportebene fest, um Vermittler und andere Szenarien zu unterstützen.

Außerdem gibt es eine Reihe weiterer Eigenschaften, die die Clientvertragsinformationen abrufen:

Wenn es sich bei dem Client um einen Duplexclient handelt, rufen die folgenden Eigenschaften auch Rückruftyp und Laufzeit des Clients ab.

Eigenschaften

CallbackClientType

Ruft den Typ des Rückrufvertrags ab, der einem Duplexclient zugeordnet ist, bzw. legt diesen Typ fest.

CallbackDispatchRuntime

Ruft die DispatchRuntime ab, die durch den Dienst initiierte Vorgänge weiterleitet.

ChannelInitializers

Ruft eine Auflistung von Kanalinitialisiererobjekten ab, die verwendet werden, um den einem Client zugeordneten Kanal anzupassen.

ClientMessageInspectors

Ruft eine Sammlung von Nachrichteninspektorobjekten ab, die verwendet werden, um Nachrichten eines bestimmten Dienstvorgangs anzuzeigen oder zu ändern.

ClientOperations

Ruft eine Sammlung von Clientvorgangsobjekten zum Anfügen von Erweiterungsobjekten ab, die Nachrichten und das Verhalten eines bestimmten Dienstvorgangs überprüfen oder ändern.

ContractClientType

Übernimmt oder bestimmt den Typ des Vertrags, der einem Client zugeordnet wird.

ContractName

Ruft den Namen des Vertrags ab, der einem Client zugeordnet ist.

ContractNamespace

Ruft den Namespace des Vertrags ab, der einem Client zugeordnet ist.

InteractiveChannelInitializers

Ruft eine Auflistung eines interaktiven Kanalinitialisierers ab.

ManualAddressing

Ruft einen Wert ab oder legt ihn fest, der angibt, ob der Client Adressierungsheader zu Anforderung-Antwort-Nachrichten hinzufügt.

MaxFaultSize

Ruft die maximale Fehlergröße ab oder legt diese fest.

MessageInspectors

Ruft für einen Client eine Auflistung von Nachrichteninspektorimplementierungen ab.

MessageVersionNoneFaultsEnabled

Ruft einen Wert ab, der angibt, ob die MessageVersionNoneFaultsEnabled-Eigenschaft festgelegt ist, oder legt diesen Wert fest.

Operations

Ruft eine Auflistung der Clientvorgänge für einen Client ab.

OperationSelector

Ruft eine IClientOperationSelector-Implementierung ab, die verwendet werden kann, um eine ClientOperation auszuwählen, oder legt diese fest.

UnhandledClientOperation

Ruft den Clientvorgang für Methoden ab, die nicht über eine entsprechende ClientOperation in der Operations-Auflistung verfügen.

ValidateMustUnderstand

Ruft einen Wert ab oder legt diesen fest, der angibt, ob das System oder die Anwendung die Verarbeitung von MustUnderstand-SOAP-Headern erzwingt.

Via

Ruft die Transportadresse ab, die verwendet wird, um Nachrichten durch den Client zu senden, oder legt diese Transportadresse 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