ninject NinjectWeb共同黑魔法

时间:2013-12-13 09:41:19

标签: c# ninject inversion-of-control asp.net-mvc-5

我正在学习如何使用Ninject并且我理解它的基本原理,但是我应用它的第一个项目是一个MVC 5项目,需要在控制器上进行一些构造函数注入。

我跟踪了网站上的guid,即

  • 我拉进了Nuget包
  • 我在NinjectWebCommon的RegisterServices方法中设置了绑定
  • 我确保我的控制器有一个接口作为构造函数的参数

这就像一枚炸弹一样,但是根据我的喜好,这里只有太多的黑魔法。

我已经解决了因为WebActivator.PreApplicationStartMethod,NinjectWebCommon的start方法在开始时被调用,我的绑定得到了设置。我对此很酷,但我感到困惑的是,kernal.get方法是如何被调用的,以及谁在构造函数中使用参数调用我的控制器(如果我没有Ninject,通常会抛出一个讨厌的运行时错误)。

我只能假设某个地方ninject正在使用内核来实例化我的控制器(这反过来会依赖我的界面,然后向下移动以解决所有其他界限)

但这会发生在哪里?

* 在后台排队令人毛骨悚然的伏都教音乐 *

2 个答案:

答案 0 :(得分:2)

答案 1 :(得分:0)

它也发生在我身上,但在我的情况下我只是做了

1)。我拉了Nuget套餐 2)。我创建了一个接受参数

的构造函数

它有效。我没有在NinjectWebCommon的RegisterServices中添加任何内容。

我还在NinjectWebCommon的开头设置了一个断点,但它没有被击中。