不同生命周期的注射服务

问题描述 投票:0回答:1

我正在学习如何正确使用 DI 容器,但无法理解一点。我读到,我无法将生命周期较小的服务注入生命周期较长的服务中。例如,我不应该将

Scoped
服务注入到
Singleton
服务中。我在
Transient
服务中找不到有关
Scoped
服务的信息。

我正在 Stack Overflow 和文档中搜索信息,但找不到答案。从我的角度来看,这是一个很好的方法,因为 DI 容器将控制

Transient
服务的创建和处置(如果需要),这些服务在每次请求时创建,与
Transient
生命周期的主要思想保持一致。但是,我想确定这一点,因为我在 .NET 平台方面没有丰富的经验。

c# asp.net .net dependency-injection dispose
1个回答
0
投票

好吧,最好是自行测试 - 如果您尝试解决作用域服务的瞬态服务,ASP.NET 应用程序不会抛出错误。

你可以这样想:瞬态服务只要需要就一直存在,如果作用域服务需要它们并且只要请求就存在,或者单例需要它们(解决单例的瞬态服务),那么这是完全有意义的也很好用)。

© www.soinside.com 2019 - 2024. All rights reserved.