.NET Framework Class Library
IClientMessageInspector..::.AfterReceiveReply Method

Enables inspection or modification of a message after a reply message is received but prior to passing it back to the client application.

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

Visual Basic (Declaration)
Sub AfterReceiveReply ( _
    ByRef reply As Message, _
    correlationState As Object _
)
Visual Basic (Usage)
Dim instance As IClientMessageInspector
Dim reply As Message
Dim correlationState As Object

instance.AfterReceiveReply(reply, correlationState)
C#
void AfterReceiveReply(
    ref Message reply,
    Object correlationState
)
Visual C++
void AfterReceiveReply(
    Message^% reply, 
    Object^ correlationState
)
JScript
function AfterReceiveReply(
    reply : Message, 
    correlationState : Object
)

Parameters

reply
Type: System.ServiceModel.Channels..::.Message%
The message to be transformed into types and handed back to the client application.
correlationState
Type: System..::.Object
Correlation state data.
Remarks

Implement AfterReceiveReply to inspect or modify a reply message after it has been received by the WCF client object but before it is deserialized into objects that are returned to the client application.

The correlationState is the object returned by the user when BeforeSendRequest is called for this message. The best practice is to make this a System..::.Guid to ensure that no two correlationState objects are the same.

Examples

The following code example shows an implementation that writes strings to the console when the implementation is called.

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

The following code example shows how to use an System.ServiceModel.Description..::.IEndpointBehavior to insert the client message inspector in the client endpoint.

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

Finally, the following code example shows how to modify the client configuration file to use the endpoint behavior with a particular endpoint.

xml
  <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>
.NET Framework Security

Platforms

Windows 7, Windows Vista, Windows XP SP2, Windows Server 2008 R2, Windows Server 2008, Windows Server 2003

The .NET Framework and .NET Compact Framework do not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.
Version Information

.NET Framework

Supported in: 3.5, 3.0
See Also

Reference

Tags :


Page view tracker