1

我能理解这么多,Kephas 不提供自己的 DI 容器,但它在现有的容器上构建适配器(Kephas 有自己的依赖注入容器。为什么要使用另一个框架,为什么不使用现有的?)。现有的适配器适用于 System.Composition (MEF2),并且据我最近了解到,适用于 Autofac(从 6.5.0 版开始,不能在使用 Kephas 的开放式通用服务中使用构造函数)。

但是,ASP.NET 带有自己的 DI 容器实现。在这方面,现在是否可以将 Kephas 与 ASP.NET Core 一起使用,如果可以,如何?

4

1 回答 1

1

从 6.5.0 版本开始,Kephas 还将提供一个 ASP.NET Core 适配器,因此,是的,很快就可以将 Kephas 与 ASP.NET Core 一起使用。但是,内置的依赖注入并不具备 Kephas 所需的所有功能,命名元数据和延迟实例化。还会有 Microsoft.Extensions.DependencyInjection 的适配器,但没有上述功能,所以我不太推荐它。推荐使用 Autofac 适配器(如果 Microsoft ASP.NET Core 推荐它用于高级场景)。

另一方面,您可以让 Kephas 使用 MEF2 或 Autofac 管理其依赖关系,并向 ASP.NET Core 提供一个服务提供者,该服务提供者聚合了默认的(或您选择的)和 Kephas 的服务提供者。这有以下缺点:

  1. 你最终会得到两个容器。

  2. Kephas 容器将无法访问 ASP.NET Core 提供的服务。

于 2019-08-26T07:28:41.123 回答