#inversion-of-control #webservicehost
#инверсия управления #webservicehost
Вопрос:
В последнее время я читал о IoC, и я думаю, что это определенно пригодилось бы в веб-сервисе WCF, который я разрабатываю. Однако, похоже, что Ninject, StructureMap и Spring.Net (я проверил только эти три) требует добавления пользовательского Factory
атрибута в *.svc
файл:
<%@ ServiceHost Language="C#" Debug="true" Service="SomeService" CodeBehind="SomeService.svc.cs" Factory="Ninject.Extensions.Wcf.NinjectServiceHostFactory" %>
Проблема в том, что из-за архитектуры системы, в которой будет развернута служба, я уже использую пользовательскую фабрику, которая является обязательной (требованием) для этого проекта. Могу ли я как-то преодолеть эту ситуацию?
Ответ №1:
Autofac также использует пользовательскую фабрику, и я подозреваю, что все они будут, поскольку это дает контейнеру IoC возможность участвовать в процессе создания сервиса. Большинство (все?) Из Них имеют открытый исходный код, поэтому вы можете просмотреть их исходный код и посмотреть, можно ли обернуть пользовательскую фабрику IoC в вашу или изменить исходный код для их интеграции.