Как добавить расширение в рабочий процесс службы WF4, если действия определены в отдельной сборке? - PullRequest
0 голосов
/ 19 октября 2011

У меня есть сборка, которая определяет некоторые сервисные интерфейсы (например, IAddressBookService).Я ссылался на это собрание в собрании общих мероприятий WF.Когда одно из моих общих действий хочет использовать этот сервис, я хочу получить ссылку на сервис из расширений контекста, например:

IAddressBookService myService = context.GetExtension<IAddressBookService>()

Я хочу использовать одно из этих общих действий в сервисе WorkFlow, размещенном в IIS.,Однако я не могу понять, где я должен добавить конкретную реализацию IAddressBookService в контекст рабочего процесса.На мои конкретные имплементации не ссылается моя сборка общих активностей, так как я хочу, чтобы эта библиотека ссылалась на интерфейсы, поэтому я не могу использовать переопределение «CacheMetadata», и я не вижу никаких методов, которые обязательно будут вызванымоя работа службы документооборота в IIS до ее запуска.Кроме того, насколько я могу судить, WorkFlowExtenstionManager недоступен при размещении службы на IIS.Есть ли какой-нибудь общий шаблон для решения этой проблемы, или я должен просто создать какой-то сервисный локатор, чтобы сделать это для меня?

Спасибо.

Майк

1 Ответ

1 голос
/ 20 октября 2011

Лучший способ - определить BehaviorExtensionElement и добавить его в файл web.config.См. Мой ответ на этот вопрос для примера.

...