Ninject:带有int参数的Controller Constructor

时间:2010-04-23 23:00:35

标签: ninject

如何实例化具有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);

        }

    }

1 个答案:

答案 0 :(得分:4)

我不确定这是否适用于Ninject 1.0,但确实适用于2.0

var controller = kernel.Get<IController>(new ConstructorArgument("masterId", 1)); 

然而,在使用IoC容器时,手动将参数传递给构造函数可能不太好。