以下是项目结构:
问题:无法将注入的类放入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
答案 0 :(得分:0)
通常在管理内核的“根”项目中,您需要加载所有模块。这必须在应用程序i.E初始化期间完成。在应用程序依赖绑定之前。
假设绑定ILeadInformation
的模块称为LeadModule
。它看起来像是:
IKernel.Load<LeadModule>();
编辑:
对于您的具体方案,您拥有包含应用程序和一些接口的MVCApplication
程序集,并且您拥有引用Manager
程序集的MVCApplication
程序集,如下所示:
现在您应该将组合根放在MVCApplication
程序集中。但是,呃不,你不能引用Manager
程序集,因为这会导致循环依赖。
所以我们必须解决这个问题。我们需要将接口移动到新的程序集中。并调整参考,使它看起来像: