2011-12-07 2 views
2

Ninject MVC 소스 코드를 살펴 보았으며 기본값을 덮어 쓸 컨트롤러 팩토리를 생성하는 메서드는 NinjectControllerFactory 만 반환하도록 하드 코드되어 있습니다. 가상의 경우 IControllerFactory를 사용하는 것이 내 눈을 더욱 이해하게됩니다.Ninject Mvc NinjectHttpApplication이 CreateControllerFactory()에 대해 IControllerFactory를 사용하지 않는 이유

/// <summary> 
/// Creates the controller factory that is used to create the controllers. 
/// </summary> 
/// <returns>The created controller factory.</returns> 
protected virtual NinjectControllerFactory CreateControllerFactory() 
{ 
    return new NinjectControllerFactory(this.Kernel); 
} 

나는 Ninject에 사랑하고 나는이 방법을 수행 한 이유가 있는지,하지만 난 내 자신의 ControllerFactory를 작성하고 그것을 사용하는 데 필요한 순간에 문제가있는 것이 아니라 여전히를 사용합니다 NinjectHttpApplication. NinjectControllerFactory에서 상속받을 수 있고이 새 인스턴스를 반환하는 메서드를 재정의 할 수 있지만 Ninject 형식의 모든 기능을 사용하지는 않으므로 냄새가 날 것 같아 보인다.

그래서 IController를 사용하지 않는 이유가 있습니까? 아니면 새로운 버전에서 변경 될 수 있습니다.

답변

1

MVC 1.0 또는 2.0 중 하나를 참조한다고 가정합니다. MVC 3.0은 완전히 다른 방식을 취합니다.

아니요. IControllerFactory을 반환하지 않을 이유가 없습니다. 이것은 대부분 자동 리팩터링이었고 인식되지 않았습니다. 반면에 NinjectControllerFactory을 사용하지 않으면 확장 프로그램을 전혀 사용할 이유가 거의 없습니다.

+0

Ninject V 2.2.0.0에 대한 최신 빌드에서 얻은 소스 코드는 여전히 ControllerFactory를 사용합니다. 내가 바보가 아니라면 MVC2 버전을 얻었습니다. DependencyResolver를 사용하지 않는 것이 이상하다고 생각했습니다. git에서 출처를 확인하고 지금은 문제가되지 않는다는 것을 깨달았습니다. – Grofit

관련 문제