.Net Core IOC DI(依赖注入)

原文链接:https://www.cnblogs.com/ysmc/p/16012269.html

暂时(Transient)

  • 暂时生存期服务是每次从服务容器进行请求时创建的。 这种生存期适合轻量级、 无状态的服务。

作用域(Scoped)

  • 对于 Web 应用,指定了作用域的生存期指明了每个客户端请求(连接)创建一次服务。
  • 在处理请求的应用中,在请求结束时会释放有作用域的服务。
  • 使用 Entity Framework Core 时,默认情况下使用范围内生存期来注册 DbContext 类型。

单例(Singleton)

  • 来自依赖关系注入容器的服务实现的每一个后续请求都使用同一个实例。 如果应用需要单一实例行为,则允许服务容器管理服务的生存期。
  • 单一实例服务必须是线程安全的,并且通常在无状态服务中使用。
  • 注意:不要从单一实例解析限定范围的服务,并小心不要间接地这样做,例如通过暂时性服务。 当处理后续请求时,它可能会导致服务处于不正确的状态。最直接的影响是限定范围的服务无法释放,间接成了单例模式。一定要使用,就自己创建,并且显式管理它的生命周期。
posted @ 2022-03-16 12:56  一事冇诚  阅读(2254)  评论(0编辑  收藏  举报