我有一个引用六个程序集的 MVC 应用程序。每个程序集都有网站的相关组件。在某些情况下,这些程序集相互依赖。这是一些原型
Assembly1
---------
interface ILogger{...}
Assembly2
--------
class MyLogger : ILogger {...}
Assembly3
--------
interface IRepository {.....}
Assembly4
---------
interface MyResository : IRepository
{
[Inject]
public ILogger Logger{get;set;}
... other methods...
}
MVCApp
------
public HomeController : Controller
{
[Inject]
public ILogger Logger{get;set;}
[Inject]
public IRepository Repository{get;set;}
}
我已将所有用于 Di 解析的 Ninject 相关代码放在一个单独的程序集中,并且该程序集引用了所有其他项目。
这就是发生的事情。当 HomeController 被实例化时,我有 Logger 和 Repository 属性的有效实例。Logger 没有依赖,完美。但是当我查看 Repository 的实例时,Logger 实例还没有被实例化。
在这种情况下如何使用 Ninject 设置 DI?
谢谢