Передача контекста в конвейере WCF

#.net #wcf #wcf-client

#.net #wcf #wcf-клиент

Вопрос:

Скажем, я нахожусь на стороне клиента, где цепочка выглядит примерно так (упрощенно):

  1. Вызов метода прокси
  2. Проверка параметров ( IParameterInspector )
  3. Сериализация / форматирование сообщения
  4. Проверка сообщений ( IClientMessageInspector )
  5. Канал

Есть ли какие-либо средства для передачи моего контекста по цепочке?

Проблема, которую я пытаюсь решить, заключается в том, что IParameterInspector.AfterCall() в случае сбоев не вызывается get, и я не могу получить объект состояния корреляции, который я создал в IParameterInspector.BeforeCall() , могу ли я? Но если бы я мог сохранить это в каком-то контексте, я бы извлек его, например, в IClientMessageInspector.AfterReceiveReply() и был бы счастлив.

Ответ №1:

OperationContext недоступен внутри IClientMessageInspector . В итоге появилось ThreadStatic поле в надежде, что у меня не возникнет проблем с многопоточностью.