2010-04-23 59 views
1

如何實例化一個具有int參數的控制器? 使用Ninject ..Ninject:帶int參數的控制器構造函數

我的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); 

     } 

    } 
 

回答

4

我不知道這是否會與Ninject工作1.0,但與2.0一起工作

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

但是它的概率在使用IoC容器時,不宜將參數傳遞給構造函數。