【发布时间】:2010-10-16 03:37:59
【问题描述】:
我想在中等信任环境中使用依赖注入。为此,我选择了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 框架在中等信任下工作(意味着不使用反射)
【问题讨论】:
标签: asp.net-mvc dependency-injection inversion-of-control ninject medium-trust