我在这个网站上读到了一些东西:
- 最好在启动应用程序时配置我们的容器
- 最好避免让我们的库依赖依赖注入(inject)框架
- 建议使用工厂来初始化属性在运行时定义的对象
我使用 Ninject。如果我理解这些建议,则有必要:
- 我的库不使用 NInject.dll
- 因此,我的 NinjectModules 必须在我的应用程序的项目中定义
- 我的工厂 ( which are created on this principle ) 也必须在我的应用程序的项目中定义,而不是直接在库中定义
这似乎很奇怪,尤其是对于工厂而言。我有许多使用同一个库的项目。所有这些项目都应该重新定义 ninject 模块和工厂吗?
你怎么看?
最佳答案
配置不一定在应用程序集中。它也可以在几个专用程序集中只包含一部分配置。但正如您所提到的,它不应该成为实现的一部分。如果您在多个项目中共享完全相同的配置,您可以引用现有的配置。
对于工厂,您可以使用 Ninject.Extensions.Factory
将来您不必自己实现它们。
关于c# - 我应该在哪里定义我的 NinjectModule 和我的工厂?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8518024/