依赖注入的 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 的首席开发人员。
在评估 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 的首席开发人员。