Ninject如何解析MVC中的控制器?

时间:2011-10-19 17:19:18

标签: asp.net asp.net-mvc ninject

我是MVC的新手。我正在关注史蒂夫桑德森的MVC书籍,以创建一个示例MVC项目。在项目中,ninject用于实现自定义ControllerFactory。我不理解在没有任何先前绑定语句的情况下可以在ControllerFactory中解析Controller类的部分。内核对象是如何在第一时间获取控制器信息的?

非常感谢

安迪

1 个答案:

答案 0 :(得分:1)

他很可能创建了一个DefaultControllerFactory的子类,它表示默认注册的控制器工厂。从MSDN可以看出:这个类为想要仅对控制器创建进行微小更改的开发人员提供了方便的基类。因此可以覆盖GetControllerInstance方法,并使用Ninject根据控制器类型创建控制器。

但是,当前控制器工厂必须使用SetControllerFactory在Global.asax文件中注册,特别是在Application_Start()中,将子类类型传入类型构造函数。因此,这将有效地告诉MVC应该使用自定义控制器类来创建控制器而不是默认MVC控制器工厂。