我应该在哪里定义我的NinjectModule和我的工厂?

Fil*_*dji 7 c# dependency-injection ninject

我在这个网站上阅读了一些内容:

  • 最好在启动应用程序时配置我们的容器
  • 最好避免使我们的库依赖于依赖注入框架
  • 建议使用工厂初始化其属性在运行时定义的对象

我用Ninject.如果我理解这些建议,就必须:

  • 我的库不使用NInject.dll
  • 因此,我的NinjectModules必须在我的应用程序的项目中定义
  • 我的工厂(根据这个原则创建)也必须在我的应用程序的项目中定义,而不是直接在库中定义

这看起来很奇怪,特别是对工厂来说 我有很多项目使用相同的库.所有这些项目是否应该重新定义ninject模块和工厂?

你怎么看 ?

Rem*_*oor 1

配置不一定位于应用程序集中。它也可以位于多个专用组件中,仅包含配置的一部分。但正如您所提到的,它不应该成为实施的一部分。如果您在多个项目中共享完全相同的配置,则可以引用现有配置。

Ninject.Extensions.Factory对于您将来可以使用的工厂,这样您就不必自己实现它们。