Export (0) Print
Expand All

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.

  NameDescription
Protected methodSupported by Portable Class LibraryRequestContextInitializes a new instance of the RequestContext class.
Top

  NameDescription
Public propertySupported by Portable Class LibraryRequestMessageWhen overridden in a derived class, gets the message that contains the request.
Top

  NameDescription
Public methodSupported by Portable Class LibraryAbortWhen overridden in a derived class, aborts processing the request associated with the context.
Public methodSupported by Portable Class LibraryBeginReply(Message, AsyncCallback, Object)When overridden in a derived class, begins an asynchronous operation to reply to the request associated with the current context.
Public methodSupported by Portable Class LibraryBeginReply(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 methodSupported by Portable Class LibraryClose()When overridden in a derived class, closes the operation that is replying to the request context associated with the current context.
Public methodSupported by Portable Class LibraryClose(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 methodSupported by Portable Class LibraryDisposeReleases resources associated with the context.
Public methodSupported by Portable Class LibraryEndReplyWhen overridden in a derived class, completes an asynchronous operation to reply to a request message.
Public methodSupported by Portable Class LibraryEquals(Object)Determines whether the specified Object is equal to the current Object. (Inherited from Object.)
Protected methodSupported by Portable Class LibraryFinalizeAllows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection. (Inherited from Object.)
Public methodSupported by Portable Class LibraryGetHashCodeServes as a hash function for a particular type. (Inherited from Object.)
Public methodSupported by Portable Class LibraryGetTypeGets the Type of the current instance. (Inherited from Object.)
Protected methodSupported by Portable Class LibraryMemberwiseCloneCreates a shallow copy of the current Object. (Inherited from Object.)
Public methodSupported by Portable Class LibraryReply(Message)When overridden in a derived class, replies to a request message.
Public methodSupported by Portable Class LibraryReply(Message, TimeSpan)When overridden in a derived class, replies to a request message within a specified interval of time.
Public methodSupported by Portable Class LibraryToStringReturns a string that represents the current object. (Inherited from Object.)
Top

  NameDescription
Explicit interface implemetationPrivate methodSupported by Portable Class LibraryIDisposable.DisposeReleases 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.

Community Additions

ADD
Show:
© 2014 Microsoft