2012-01-24 2 views
3

Можно создать дубликат:
Unity Dependency Injection for WCF services
Using Unity Dependency Injection with WCF servicesКак использовать единичный IoC контейнер

Я новичок в Unity IoC контейнер .. Я работаю над приложением WCF (размещенные на IIS). Я хочу использовать Unity для ввода объектов, таких как журнал, база данных и т. Д.

Насколько я знаю, контейнер должен быть зарегистрирован при запуске приложения ... Где я могу это сделать в WCF?

Как только настройка завершена, как я могу передать ее через приложение WCF? Я имею в виду, что я сделал его статичным или что-то в этом роде?

+2

См. Также http://stackoverflow.com/questions/2042609/injecting-data-to-a-wcf-service – TrueWill

+0

@TrueВначале есть ответ с мертвой ссылкой. – gideon

+0

Посмотрите, поможет ли это: http: //weblogs.asp.net/fabio/archive/2009/03/24/inversion-of-control-with-wcf-and-unity.aspx из этого сообщения: http: // stackoverflow .com/questions/7355501/using-unity-dependency-injection-with-wcf-services – gideon

ответ

1

WCF, как и любое другое приложение на основе http или запроса, отличается от стандартного приложения пользовательского интерфейса. Инициализация вашего контейнера IOC не будет происходить до тех пор, пока ваше приложение не получит первый запрос, поэтому вам придется походить на вещи немного по-другому.

Для стандартного приложения WCF, размещенного в IIS, самый простой способ сделать это будет через HTTP-модуль, который инициализирует контейнер Unity при первом получении запроса. Однако, если вы собираетесь делать что-то правильно, вы должны исследовать собственный класс InstanceProvider, который позволит Unity предоставить экземпляр реализации службы WCF, вместо того, чтобы иметь единственный домен WCF, использующий Unity, для извлечения его зависимых компонентов.

Я не знаю Единство очень хорошо, я - I prever Ninject и StructureMap - но некоторые быстрые поисковые запросы по этой ссылке: http://initializecomponent.blogspot.com/2008/06/integrating-unity-with-wcf.html. Похоже, кто-то уже сделал большую часть тяжелой работы для вас. :)

Смежные вопросы