2011-04-27 64 views
1

我是通过apress学习本书的专业版asp.net mvc2的,在本书中,作者使用ninject进行依赖注入。 他继承默认控件工厂:ninject如何在Asp.net MVC中执行依赖注入

公共类NinjectControllerFactory:DefaultControllerFactory

,然后覆盖:GetControllerInstance

我有2个问题。

  1. DefaultControllerFactory如何知道要加载哪个控制器?我假设他使用路由表,然后用反射来加载它。我对么 ?

  2. 和ninject知道如何做到这一点,我写的唯一路线是:

    私人的iKernel内核=新StandardKernel();返回(IController)kernel.Get(controllerType);

Ninject不可能知道我的路由表以及控制他应该加载.. 所以他怎么知道?

ps。 我使用常规ninject,而不是为MVC创建的某些特定版本(我相信他们在其网站上也有)

回答

0

NinjectControllerFactory.GetControllerInstance被MVC调用。这意味着它是MVC,用于评估处理请求所需的控制器类型,并从路由表中获取它。

如果你想使用这个,我建议使用https://github.com/ninject/ninject.web.mvc这将节省您的时间和工作,因为它与Ninject一起维护。否则,你将不得不自己更新到新的Ninject版本。