Как передать в WCF веб-сервис ссылку на другой компонент его же приложения?
От: IvanXXX  
Дата: 18.04.15 12:49
Оценка:
Доброго времени суток.

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

Итак, имеется WCF веб-сервис, который принимает запросы от клиентов и передает их на обработку процессорам (предназначенным для обработки запросов логическим компонентам сервера). Экземпляры веб-сервиса одного и того же класса могут "висеть" на разных адресах и передавать полученные запросы одного и того же типа разным процессорам.

Вопрос: как передать веб-сервису, автоматом создаваемому средой WCF при [ServiceBehavior(InstanceContextMode = InstanceContextMode.PerCall)] или [ServiceBehavior(InstanceContextMode = InstanceContextMode.PerSession)], ссылку на какой-либо компонент этого же приложения (очередь запросов, процессор и т.п.).

За недостатком знаний наиболее очевидный вариант — использовать статическое поле — член класса веб-сервиса, в него записывать метод — селектор процессора для входящих запросов в зависимости от параметров клиента и веб-сервиса а-ля "void PostRequest(Request request, string clientUri, string serverUri)". Проблема в том, что приложение построено на интерфейсах (тестируемость, DI/IoC), а статические члены классов реализацией интерфейсов не являются.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.