Поделиться через


RequestContext Класс

Определение

Предоставляет ответ, связанный с входящим запросом.

public ref class RequestContext abstract : IDisposable
public abstract class RequestContext : IDisposable
type RequestContext = class
    interface IDisposable
Public MustInherit Class RequestContext
Implements IDisposable
Наследование
RequestContext
Реализации

Комментарии

Контекст запроса возвращается из объекта IReplyChannel. Каждый объект RequestContext инкапсулирует сведения, необходимые для ответа на запрос, чтобы не приходилось блокировать канал, ожидая ответы на все сообщения с запросами.

В модели RequestContext "запрос-ответ" объект является связью между поступающим запросом и ответом, который выходит. Когда сервер получает запрос, он предоставляет RequestContext экземпляр , представляющий запрос к каналу. Контекст запроса содержит, помимо других полезных свойств, первоначальное сообщение с запросом. Этот контекст запроса затем помещается в объект OperationContext, который получает служба. Для доступа к запросу текущей операции обычно используется свойство Current.

RequestContext может иметь значение null. Так как задача контекста запроса — связывать запросы с ответами, нет смысла получать контекст запроса в отсутствие ответа, поэтому в этом случае контексту присваивается значение null. При односторонних операциях в модели запрос-ответ сервер получает запросы, но не отправляет клиенту ответ. Поэтому если объект RequestContext неожиданно приобрел значение null, сначала нужно проверить, не задан ли для операции контракт IsOneWay.

Особое примечание для пользователей управляемого кода C++, создающих классы, унаследованные от данного.

  • Поместите код очистки в блок (On)(Begin)Close (или OnAbort), а не в деструктор.

  • Избегайте использования деструкторов, поскольку они приводят к тому, что компилятор автоматически создает IDisposable.

  • Избегайте использования нессылочных членов, поскольку они приводят к тому, что компилятор автоматически создает IDisposable.

  • Избегайте использования методов завершения. При включении этого метода необходимо подавить предупреждение построения и вызвать SuppressFinalize(Object) и сам метод завершения из блока (On)(Begin)Close (или OnAbort) для эмуляции автоматического поведения IDisposable.

Конструкторы

RequestContext()

Инициализирует новый экземпляр класса RequestContext.

Свойства

RequestMessage

При переопределении в производном классе возвращает сообщение, содержащее запрос.

Методы

Abort()

При переопределении в производном классе отменяет обработку запроса, связанного с контекстом.

BeginReply(Message, AsyncCallback, Object)

При переопределении в производном классе начинает асинхронную операцию ответа на запрос, связанный с текущим контекстом.

BeginReply(Message, TimeSpan, AsyncCallback, Object)

При переопределении в производном классе начинает асинхронную операцию ответа на запрос, связанный с текущим контекстом, в течение определенного периода времени.

Close()

При переопределении в производном классе прекращает операцию ответа на контекст запроса, связанный с текущим контекстом.

Close(TimeSpan)

При переопределении в производном классе прекращает операцию ответа на контекст запроса, связанный с текущим контекстом в течение определенного периода времени.

Dispose(Boolean)

Освобождает ресурсы, связанные с контекстом.

EndReply(IAsyncResult)

При переопределении в производном классе завершает асинхронную операцию ответа на сообщение запроса.

Equals(Object)

Определяет, равен ли указанный объект текущему объекту.

(Унаследовано от Object)
GetHashCode()

Служит хэш-функцией по умолчанию.

(Унаследовано от Object)
GetType()

Возвращает объект Type для текущего экземпляра.

(Унаследовано от Object)
MemberwiseClone()

Создает неполную копию текущего объекта Object.

(Унаследовано от Object)
Reply(Message)

При переопределении в производном классе отвечает на сообщение запроса.

Reply(Message, TimeSpan)

При переопределении в производном классе отвечает на сообщение запроса в течение заданного промежутка времени.

ToString()

Возвращает строку, представляющую текущий объект.

(Унаследовано от Object)

Явные реализации интерфейса

IDisposable.Dispose()

Освобождает управляемые и неуправляемые ресурсы, связанные с контекстом.

Применяется к