【问题标题】:IoC in .NET Core.NET Core 中的 IoC
【发布时间】:2022-01-07 20:23:03
【问题描述】:

在 ASO.NET Core 中,AddSingletonAddScopedAddTransient 使用什么类型的 IoC?是 Unity、Spring.Net 还是 Ninject?还是专门为 .NET Core 内置的?

【问题讨论】:

标签: .net asp.net-core dependency-injection inversion-of-control


【解决方案1】:

取决于您添加到项目中的内容。

包含 DI 容器的项目模板通常包含 Microsoft.Extensions.DependencyInjection 并实例化提供的容器。

不过你可以自带。有时您以相同的方式构建并使用它来初始化该第三方容器。例如使用 AutoFaq,它可以从 MS 的库中导入 ServicesContainer 实例来初始化其内容。

【讨论】:

  • 和 Microsoft.Extensions.DependencyInjection 不使用 Unity,对吗?
  • 它是它自己的DI容器。在GitHub 上查看源代码。
【解决方案2】:

.NET 核心使用内置的 IoC 容器。默认情况下它不是统一的。但是您可以引入具有比内置容器更高级功能的第三方容器。一些示例包括 - Scrutor、AutoFac、Unity 等。 内置的 IoC 容器支持三种生命周期:

  1. Singleton: IoC 容器将创建并共享一个 在应用程序的整个生命周期内提供服务。
  2. 瞬态: IoC 容器将创建一个新的实例 每次请求时都指定服务类型。
  3. Scoped: IoC 容器将创建一个指定的实例 每个请求一次的服务类型,将在一个单一的共享 请求。

【讨论】:

    猜你喜欢
    • 2017-07-23
    • 2018-06-24
    • 2010-11-17
    • 2019-11-02
    • 1970-01-01
    • 2011-06-13
    • 2012-05-04
    • 2015-07-11
    相关资源
    最近更新 更多