0

以下是项目结构:

  1. MVC 4 应用程序 1) 项目适用于具有控制器注入接口的 MVC。2)接口存在于这个应用程序中。
  2. 经理图书馆项目。1) 项目包含 MVC 应用程序的引用。2) 将每个接口实现到这个程序集中。3) NinjectMOdule 存在于该项目中,其中与相关管理器类绑定接口。

问题:无法将注入的类注入 Web 应用程序。

它给出以下错误: Error No matching bindings are available, and the type is not self-bindable. Activation path: 2) Injection of dependency ILeadInformation into parameter leadInformation of constructor of type HomeController 1) Request for HomeController

4

1 回答 1

0

通常在管理内核的“根”项目中,您需要加载所有模块。在应用程序依赖绑定之前,这必须在应用程序 iE 的初始化期间完成。假设绑定 的模块ILeadInformation被称为LeadModule. 它看起来像:

IKernel.Load<LeadModule>();

编辑:

对于您的具体场景,您拥有MVCApplication包含应用程序和一些接口的程序集,并且您拥有Manager引用程序集的MVCApplication程序集,如下所示:

原始依赖项

现在您应该将合成根放在MVCApplication程序集中。但是,呃,不,你不能引用Manager程序集,因为这会导致循环依赖。所以我们必须解决这个问题。我们需要将接口移动到一个新的程序集中。并调整参考,使其看起来像: 拆分成更多的程序集,所以我们没有循环引用

于 2014-07-02T09:09:35.430 回答