Я хочу использовать внедрение зависимостей в среде среднего доверия. Для этой цели я выбрал Ninject , как мне сказали, его легкий вес. Как настроить впрыск в контроллеры?
Когда я пытался создать собственную фабрику контроллеров:
public class NinjectControllerFactory : DefaultControllerFactory
{
private readonly IKernel _kernel;
public NinjectControllerFactory(params IModule[] modules)
{
_kernel = new StandardKernel(modules);
}
public override IController CreateController(System.Web.Routing.RequestContext requestContext, string controllerName)
{
IController controller = base.CreateController(requestContext, controllerName);
_kernel.Inject(controller);
return controller;
}
}
Но я сталкиваюсь с этой ошибкой:
System.InvalidOperationException was unhandled by user code
Message="An error occurred while creating a controller of type 'xxx'.
Если у контроллера нет
контроллер фабрики, убедитесь, что он имеет
открытый конструктор без параметров. "
Любая идея, как заставить Ninject или любую другую платформу IoC работать под средним доверием (что означает отсутствие использования отражения)