【发布时间】:2019-08-23 05:51:51
【问题描述】:
阅读docs:
当应用在开发环境中运行时,默认 服务提供商执行检查以验证:
- 范围服务不是直接或间接从根服务提供者解析的。
- 作用域服务不会直接或间接注入到单例中
这意味着我不应该将 Scoped 服务注入到单例服务中。
基于瞬态服务每次被请求时都会创建一个实例的事实,VS 范围服务在整个请求的生命周期中都是单个实例:
问题:
为什么 DI 只验证作用域服务而不验证瞬态服务?
【问题讨论】:
-
为什么需要验证瞬态。只要单例存在,瞬态实例就可以存在。瞬态实例不会注入其他任何地方,它只存在于单例实例中。
-
Fabio 我仍然不明白为什么瞬态与作用域的不同。你能提供一个有问题的例子吗?
标签: dependency-injection .net-core