Прошу прощения за глупый вопрос — я новичок в WCF, а ответ найти не удается.
Итак, имеется WCF веб-сервис, который принимает запросы от клиентов и передает их на обработку процессорам (предназначенным для обработки запросов логическим компонентам сервера). Экземпляры веб-сервиса одного и того же класса могут "висеть" на разных адресах и передавать полученные запросы одного и того же типа разным процессорам.
Вопрос: как передать веб-сервису, автоматом создаваемому средой WCF при [ServiceBehavior(InstanceContextMode = InstanceContextMode.PerCall)] или [ServiceBehavior(InstanceContextMode = InstanceContextMode.PerSession)], ссылку на какой-либо компонент этого же приложения (очередь запросов, процессор и т.п.).
За недостатком знаний наиболее очевидный вариант — использовать статическое поле — член класса веб-сервиса, в него записывать метод — селектор процессора для входящих запросов в зависимости от параметров клиента и веб-сервиса а-ля "void PostRequest(Request request, string clientUri, string serverUri)". Проблема в том, что приложение построено на интерфейсах (тестируемость, DI/IoC), а статические члены классов реализацией интерфейсов не являются.