服务寿命瞬态,作用域,单例

mko*_*mko 4 c# asp.net dependency-injection asp.net-core

我发现了一篇关于

https://docs.microsoft.com/zh-cn/aspnet/core/fundamentals/dependency-injection?view=aspnetcore-2.1

并解释了asp.net核心DI和服务寿命。

文章提到以下生命周期:

  • 短暂的
  • 范围
  • 单身人士

我试图找到一个真实的例子,或者至少是一个关于何时使用每个生命周期的更好的解释。

Haw*_*zey 9

3个例子:

单例-在整个应用程序范围的配置设置中都可能存在单例,例如游戏管理器,它跟踪玩家在整个游戏中的进度。

作用域-建议对实体框架上下文进行作用域,以便您可以重用连接属性。

瞬态-实体框架上下文不能由2个线程共享,因此如果您要执行任何异步工作。您将使用瞬态,以便为每个组件创建上下文的新实例。否则,您将不得不等待作用域组件完成,然后再移入下一个组件。