Ninject模块链

时间:2015-09-08 13:19:56

标签: .net dependency-injection ninject inversion-of-control

如何在我的Ninject模块中加载引用的模块。举个例子,我有Business层模块,它依赖于DataAccess模块​​,但是目前我必须做这样的事情:

Business.Module {
   class Module{
      public void Load()
      {
           //add bindings
      }
   }
}
DataAccess.Module {
   class Module{
      public void Load()
      {
           //add repositories bindings
      }
   }
}

然后在app中,我必须使用两者:

class ControllerFactory
{
     NinjectKernel kernel = new NinjectKernel(
       new Business.Module(),
       new DataAccess.Module())
}

但我的目标是分离应用和数据层,所以app。必须只引用业务层,它引用数据层。

我知道如何使用Unity容器来完成它。但Ninject怎么样?

1 个答案:

答案 0 :(得分:1)

您可以为此创建单独的项目。从中引用DAL和Business层是安全的,因为它除了配置组合根之外不包含任何逻辑。然后从GUI项目引用此项目。 这看起来似乎是一种开销,但在我的经验中它完美无缺。