Dieser Artikel wurde maschinell übersetzt. Wenn Sie die englische Version des Artikels anzeigen möchten, aktivieren Sie das Kontrollkästchen Englisch. Sie können den englischen Text auch in einem Popupfenster anzeigen, indem Sie den Mauszeiger über den Text bewegen.
Übersetzung
Englisch

IClientMessageInspector-Schnittstelle

 

Veröffentlicht: Oktober 2016

Definiert ein Nachrichteninspektorobjekt, das der MessageInspectors-Auflistung hinzugefügt werden kann, um Nachrichten anzuzeigen oder zu ändern.

Namespace:   System.ServiceModel.Dispatcher
Assembly:  System.ServiceModel (in System.ServiceModel.dll)

public interface IClientMessageInspector

NameBeschreibung
System_CAPS_pubmethodAfterReceiveReply(Message, Object)

Aktiviert die Überprüfung oder Änderung einer Nachricht, nachdem eine Antwortnachricht eingegangen ist, aber bevor diese an die Clientanwendung zurückgegeben wird.

System_CAPS_pubmethodBeforeSendRequest(Message, IClientChannel)

Aktiviert die Überprüfung oder Änderung einer Nachricht, bevor eine Anforderungsnachricht an einen Dienst gesendet wird.

Implementieren Sie die IClientMessageInspector-Schnittstelle, und fügen Sie sie der MessageInspectors-Auflistung hinzu, um Nachrichten zu überprüfen oder zu ändern, während sie ein WCF-Clientobjekt durchlaufen. Ausführliche Informationen finden Sie unter ClientRuntime.

Im folgenden Codebeispiel wird eine Implementierung veranschaulicht, die Zeichenfolgen in die Konsole ausgibt, wenn die Implementierung aufgerufen wird.

#region IClientMessageInspector Members
public void AfterReceiveReply(ref System.ServiceModel.Channels.Message reply, object correlationState)
{
  Console.WriteLine("IClientMessageInspector.AfterReceiveReply called.");
  Console.WriteLine("Message: {0}", reply.ToString());
}

public object BeforeSendRequest(ref System.ServiceModel.Channels.Message request, IClientChannel channel)
{
  Console.WriteLine("IClientMessageInspector.BeforeSendRequest called.");
  return null;
}

Im folgenden Codebeispiel wird veranschaulicht, wie ein System.ServiceModel.Description.IEndpointBehavior verwendet wird, um den Clientnachrichteninspektor in den Clientendpunkt einzufügen.

#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; }

Schließlich zeigt das folgende Codebeispiel, wie die Clientkonfigurationsdatei geändert werden kann, um das Endpunktverhalten mit einem bestimmten Endpunkt zu verwenden.

Universelle Windows-Plattform
Verfügbar seit 8
.NET Framework
Verfügbar seit 3.0
Portierbare Klassenbibliothek
Unterstützt in: portierbare .NET-Plattformen
Silverlight
Verfügbar seit 4.0
Zurück zum Anfang
Anzeigen: