Asp.net core 何时使用以下瞬态、作用域和单例

Asp.net core 何时使用以下瞬态、作用域和单例,asp.net-core,dependency-injection,singleton,transient,scoped,Asp.net Core,Dependency Injection,Singleton,Transient,Scoped,我读了一些关于这方面的文章,了解了如何使用瞬态、作用域和单例,但我不知道何时使用其中一种 我的理解是: 单例:在需要存储员工数量的情况下,您可以创建单例,因为每次创建新员工时,它都会增加数量,因此在这种情况下,您需要单例 限定范围:例如,您正在玩生命数为5的游戏,然后您需要在玩家的游戏结束时减少生命数。在每一个新的时刻,你们需要新的实例,因为每一个新的时刻,你们需要的生命数是5 瞬态:何时使用瞬态 如果我错了,请纠正我。 如果可能的话,请给出更好的例子。据我所知,单例通常用于全局单例。例如,您将

我读了一些关于这方面的文章,了解了如何使用瞬态、作用域和单例,但我不知道何时使用其中一种

我的理解是:

单例:在需要存储员工数量的情况下,您可以创建单例,因为每次创建新员工时,它都会增加数量,因此在这种情况下,您需要单例

限定范围:例如,您正在玩生命数为5的游戏,然后您需要在玩家的游戏结束时减少生命数。在每一个新的时刻,你们需要新的实例,因为每一个新的时刻,你们需要的生命数是5

瞬态:何时使用瞬态

如果我错了,请纠正我。
如果可能的话,请给出更好的例子。

据我所知,单例通常用于全局单例。例如,您将拥有一个图像存储服务,您可以拥有一个从给定位置加载图像并将其保存在内存中以备将来使用的服务

作用域生存期表示每个客户端请求创建一次服务。通常,我们将使用它进行sql连接。这意味着它将根据每个请求创建和处理sql连接


每次从服务容器请求服务时,都会创建临时生存期服务。例如,在一个请求期间,您使用httpclient服务多次调用其他web api请求,但web api端点不同。此时,您将把httpclient服务注册为transient。这意味着每次调用httpclient服务时,它都会创建一个新的httpclient来发送不使用相同的请求。

这是否回答了您的问题?谢谢你的解释。。我得到了作用域和瞬态,但请你用不同的例子来解释singleton。。提前感谢您Singleton用于正常服务。例如在一些内存缓存中,您可以将一些图像或数据从磁盘读入redis,此操作在应用程序运行期间不会更改。