我正在查看 Ninject MVC 源代码,生成用于覆盖默认值的控制器工厂的方法被硬编码为仅返回 NinjectControllerFactory,但是由于将其设置为虚拟,因此(在我看来)使用 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 或者这可能会在新版本中进行更改?