依赖注入的 Kephas 评估。

Kephas evaluation for Dependency Injection.

在评估 Kephas 时,我看到它使用了 Microsoft 的 Managed Extensibility Framework(System.Composition 包)。但是,我们使用 Ninject 进行依赖注入。我是被迫更改 DI 容器,还是可以使用 Ninject?

不必更改您使用的 DI 框架的任何内容,在本例中 Ninject。但是,根据您的迁移策略,您必须考虑以下事项:

  • Kephas 使用 DI 抽象,理论上可以 运行 任何具体的 DI 实现,因此从技术上讲,您可以在幕后使用 Ninject 容器。

= 但是 =

  • Kephas 广泛使用 DI 元数据,据我所知Ninject 不支持元数据。

所以你有以下选择:

  • 使用两个 DI 容器。这对于桥接完整迁移的时间来说可能是实用的,但我不会长期推荐它 运行。
  • 使用另一个支持元数据的 DI 容器。如果您对提供内置支持的 System.Composition (MEF) 适配器不满意,另一种选择是 Autofac,但要使用它,您必须提供容器适配器(这并不复杂).这样一来,您将只有一个 DI 容器。

结论:即使您不必更改 DI 框架,但出于上述原因,建议您这样做。

您可能需要查看 DI wiki 了解更多信息。

免责声明:我是 Kephas Framework 的首席开发人员。