В этой статье я продемонстрирую процесс внедрения IoC/DI контейнера (на примере Unity 2.0) в WCF сервис. В примере я выбрал Unity 2.0, но на самом деле это не существенно, и по желанию можно легко адаптировать код под другой IoC/DI контейнер. Для тех кто не знаком еще с данным контейнером, рекомендую глянуть вводную
статью. Существуют несколько путей внедрения IoC/DI контейнера в WCF сервис, рассмотрим один из них*.
Итак, предже чем приступить к реализации наметим основные шаги:
- Для начала создадим простой WCF сервис
- Реализуем свой IInstanceProvider
- Далее опишем собственную реализацию IServiceBehavior
- Определим BehaviorExtensionElement
- И закончим, добавив необходимые настройки в web.config
*На самом деле это не единственный способ внедрения контейнера, существуют варианты с использованием ServiceHostBase и ServiceHostFactoryBase