2010-04-23 4 views
1

int 인수가있는 Controller를 어떻게 인스턴스화 할 수 있습니까? Ninject에 사용 ..Ninject : int 인수가있는 Controller 생성자

내 HomeController 이런 생성자가 :

 

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에 함께 일하는 것이 있는지 확실하지 않습니다 :이 같은 컨트롤러 공장을 만들어

 

    private int _masterId; 
    Public HomeController(int masterId){ 
     _masterId = masterId; 
} 
 

1.0이지만 2.0과 함께 작동합니다.

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

그러나 그것은 proba입니다. boo IoC 컨테이너를 사용할 때 수동으로 생성자에 인수를 전달하는 것은 그리 좋지 않습니다.