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

标签 c# dependency-injection ninject

我在这个网站上读到了一些东西:

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

我使用 Ninject。如果我理解这些建议,则有必要:

  • 我的库不使用 NInject.dll
  • 因此,我的 NinjectModules 必须在我的应用程序的项目中定义
  • 我的工厂 ( which are created on this principle ) 也必须在我的应用程序的项目中定义,而不是直接在库中定义

这似乎很奇怪,尤其是对于工厂而言。我有许多使用同一个库的项目。所有这些项目都应该重新定义 ninject 模块和工厂吗?

你怎么看?

最佳答案

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

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

关于c# - 我应该在哪里定义我的 NinjectModule 和我的工厂?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8518024/

相关文章:

java - 使用抽象 Spring bean 作为构造函数参数

c# - 有没有办法通过 native C# 调用检测在系统上安装了哪些 Windows 应用商店应用程序?

c# - 为什么 `s => x.Append(s)` 可以作为 Action<string> 传递但 `x.Append` 不能?

c# - 如何在不重复 if/else 代码的情况下使用 ASP.NET Core 基于资源的授权

c# - CaSTLe Windsor IoC 属性注入(inject)简单操作方法

macos - 将 ManagedObjectContext 获取到初始 viewController OS X 的方法

dependency-injection - 如何创建即将到期的单例绑定(bind)?

c# - 使用 Ninject 的具有多个参数的构造函数

c# - 没有选定项目的列表选择器

c# - Xamarin 中的 Ninject 仅在物理设备上测试时才会抛出错误