当前位置: 首页 > 科技观察

一图看懂 ASP.NET Core 中的服务生命周期

时间:2023-03-15 11:43:31 科技观察

一张图看懂ASP.NETCore中的服务生命周期转载本文请联系技术翻译站公众号。翻译自WaqasAnwar2020年11月8日的文章?[1]ASP.NETCore支持依赖注入(DI)软件设计模式,它允许我们注册服务,控制这些服务的实例化方式并将它们注入到不同的成分。有些服务可以在很短的时间内被实例化,并且只在特定的组件和请求中可用;有些实例只实例化一次,并且在整个应用程序生命周期中都可用。这是ASP.NETCore中可用的服务生命周期。共有三种类型。下面分别介绍一下。单例创建服务类的单个实例,将其存储在内存中,并在整个应用程序中重用它。我们可以将Singleton用于实例化成本很高的服务。可以使用AddSingleton方法注册Singleton服务,如下所示:services.AddSingleton();Scoped(在范围内)每个请求创建一次服务实例。处理单个请求所涉及的所有中间件、MVC控制器等都将获得相同的实例。实体框架上下文是使用Scoped服务的绝佳场景。我们可以使用AddScoped方法注册Scoped服务,如下所示:services.AddScoped();Transient(临时)Transient生命周期服务在每次被请求时创建。此生命周期最适合轻量级、无状态的服务。我们可以使用AddTransient方法注册一个Transient服务,如下所示:services.AddTransient();如果您想形象化上述概念,这里有一张图表供您快速参考。译者注:图中不同背景颜色(深浅)的实例代表不同的服务实例。这是描述服务生命周期的最简单的图表吗?相关链接:https://www.ezzylearning.net/tutorial/asp-net-core-service-lifetimes-infographicASP.NETCoreServiceLifetimes(Infographic)??作者:WaqasAnwar译者:科技译者出品:科技翻译翻译站(https://ITTranslator.cn/)