This topic has not yet been rated - Rate this topic

RequestContext Class

Provides a reply that is correlated to an incoming request.

System.Object
  System.ServiceModel.Channels.RequestContext

Namespace:  System.ServiceModel.Channels
Assembly:  System.ServiceModel (in System.ServiceModel.dll)
public abstract class RequestContext : IDisposable

The RequestContext type exposes the following members.

  Name Description
Protected method Supported by Portable Class Library RequestContext Initializes a new instance of the RequestContext class.
Top
  Name Description
Public property Supported by Portable Class Library RequestMessage When overridden in a derived class, gets the message that contains the request.
Top
  Name Description
Public method Supported by Portable Class Library Abort When overridden in a derived class, aborts processing the request associated with the context.
Public method Supported by Portable Class Library BeginReply(Message, AsyncCallback, Object) When overridden in a derived class, begins an asynchronous operation to reply to the request associated with the current context.
Public method Supported by Portable Class Library BeginReply(Message, TimeSpan, AsyncCallback, Object) When overridden in a derived class, begins an asynchronous operation to reply to the request associated with the current context within a specified interval of time.
Public method Supported by Portable Class Library Close() When overridden in a derived class, closes the operation that is replying to the request context associated with the current context.
Public method Supported by Portable Class Library Close(TimeSpan) When overridden in a derived class, closes the operation that is replying to the request context associated with the current context within a specified interval of time.
Protected method Supported by Portable Class Library Dispose Releases resources associated with the context.
Public method Supported by Portable Class Library EndReply When overridden in a derived class, completes an asynchronous operation to reply to a request message.
Public method Supported by Portable Class Library Equals(Object) Determines whether the specified Object is equal to the current Object. (Inherited from Object.)
Protected method Supported by Portable Class Library Finalize Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection. (Inherited from Object.)
Public method Supported by Portable Class Library GetHashCode Serves as a hash function for a particular type. (Inherited from Object.)
Public method Supported by Portable Class Library GetType Gets the Type of the current instance. (Inherited from Object.)
Protected method Supported by Portable Class Library MemberwiseClone Creates a shallow copy of the current Object. (Inherited from Object.)
Public method Supported by Portable Class Library Reply(Message) When overridden in a derived class, replies to a request message.
Public method Supported by Portable Class Library Reply(Message, TimeSpan) When overridden in a derived class, replies to a request message within a specified interval of time.
Public method Supported by Portable Class Library ToString Returns a string that represents the current object. (Inherited from Object.)
Top
  Name Description
Explicit interface implemetation Private method Supported by Portable Class Library IDisposable.Dispose Releases both managed and unmanaged resources associated with the context.
Top

You get a request context from an IReplyChannel. Each RequestContext encapsulates the information required to reply to the request, so that you do not have to block on the channel when waiting for each request message to receive a reply.

In the request/reply model, the RequestContext object is the link between the request that comes in and the reply that goes out. When the server receives a request, it provides a RequestContext instance that represents the request to the channel. The request context contains the original request message among other useful properties. This request context is then stashed inside the OperationContext for retrieval by your service. You typically use the Current property to access the request of the current operation.

The value of the RequestContext can be null. Because the role of the request context is to link requests to replies, it does not make sense to have a request context when you do not have a reply, and so in this case the context is set to null. For a one-way operation on top of the request/reply model, the server receives requests but does not send back a response to the client. So if the RequestContext is null unexpectedly, check first whether the operation contract is IsOneWay.

Special note for Managed C++ users deriving from this class:

  • Put your cleanup code in (On)(Begin)Close (and/or OnAbort), not in a destructor.

  • Avoid destructors: they cause the compiler to auto-generate IDisposable.

  • Avoid non-reference members: they can cause the compiler to auto-generate IDisposable.

  • Avoid finalizers; but if you include one, you should suppress the build warning and call SuppressFinalize(Object) and the finalizer itself from (On)(Begin)Close (and/or OnAbort) to emulate what would have been the auto-generated IDisposable behavior.

.NET Framework

Supported in: 4, 3.5, 3.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

Portable Class Library

Supported in: Portable Class Library

Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.
Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.
Did you find this helpful?
(1500 characters remaining)
Community Content Add
Annotations FAQ