ClientRuntime Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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 |
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) |