应用程序生命周期并在Asp.Net Core中添加Singleton DI服务

我试图了解Asp.Net Core中的DI服务上下文中的添加单例生存期。

首先,从我可以看到的角度来看,Singleton实例将在整个应用程序生命周期中可用。应用程序生存期是什么意思?如果它是一个网站,并且有用户登录,则首先创建单例,然后注销,然后在几个小时后重新登录该站点,然后重新登录,该用户将获得相同的单例实例。多个用户呢?多个用户可以获取同一单例实例吗?

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

评论
太假
太假

Singleton here means a single instance for the created root IServiceProvider, so effectively a single instance will be used for all requests, until the process exits.

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

点赞
评论