如何实例化具有int参数的Controller? 使用Ninject ..
我的HomeController有一个像这样的构造函数:
private int _masterId;
Public HomeController(int masterId){
_masterId = masterId;
}
我创建了一个这样的控制器工厂:
public class NinjectControllerFactory : DefaultControllerFactory
{
IKernel kernel = new StandardKernel(new ExampleConfigModule());
protected override IController GetControllerInstance(Type controllerType)
{
return controllerType == null ? null
: (IController)kernel.Get(controllerType, 1);
}
}
答案 0 :(得分:4)
我不确定这是否适用于Ninject 1.0,但确实适用于2.0
var controller = kernel.Get<IController>(new ConstructorArgument("masterId", 1));
然而,在使用IoC容器时,手动将参数传递给构造函数可能不太好。