1

我试图了解 ASP.NET Core 中 DI 上下文中的单例生命周期。

首先,据我所见,Singleton 实例将在“整个应用程序生命周期”中可用。但是“应用程序生命周期”是什么意思?如果它是一个网站并且如果用户登录,则首先创建单例,然后用户注销并在几个小时后返回该站点并重新登录该用户会获得相同的单例实例吗?多用户呢?多个用户可以获取相同的单例实例吗?

其次,.NET Core 中的应用程序生命周期何时结束?大多数文章都在讨论注册应用程序关闭事件。但是什么会触发应用程序关闭?它总是像 IISreset 或系统关闭这样的外部事件吗?还是内存崩溃等内部事件?如果没有重置或内存或任何其他问题,它会永远持续下去吗?

4

1 回答 1

2

此处的单例(即不是单例设计模式)意味着创建的根IServiceProvider的单个实例,因此有效地将单个实例用于所有请求,直到进程退出。

它与每个请求或会话无关。如果您希望每个请求都有一个新实例,但要共享,请使用作用域生命周期。

于 2020-05-17T19:40:41.693 回答