.NET Core 常用的三个生命周期

1、 Transient(瞬发生命周期)

Transient 生命周期:每次请求都会创建一个新的实例。这对于具有短暂状态的服务是合适的,例如临时计算或数据转换。

services.AddTransient<IMyService, MyService>();

2、 Scoped(区域生命周期)

Scoped生命周期:在同一请求内共享相同的实例。这对于需要在多个组件之间共享数据的服务是合适的,例如数据库上下文。

services.AddScoped<IMyService, MyService>();

3、 Singleton(单例生命周期)

Singleton生命周期:在应用程序的整个生命周期中只存在一个实例。这对于需要在应用程序的不同组件之间共享状态的服务是合适的,例如全局配置或共享缓存。

复制代码
services.AddSingleton<IMyService, MyService>();

个人总结

Transient(瞬发生命周期): 就是每一次访问都是相当于New了一个新的对象,例如:在A方法调用User类会new 一个新的User,在B方法中同样会new一个新的对象,这两个对象不相等.

Scoped(区域生命周期): 就是在同一次访问中例如访问一个方法,在if中声明的对象,在else中是不能使用的.

Singleton(单例生命周期): 就是在项目运行期间,这个对象只会存在一个,无论在哪调用,调用到的都是一个对象.

相关推荐
喵叔哟4 天前
12.云平台部署
后端·.netcore
爱吃香蕉的阿豪4 天前
NET Core中ConcurrentDictionary详解:并发场景下的安全利器及服务端实践
安全·http·.netcore·高并发
武藤一雄5 天前
彻底吃透.NET中序列化反序列化
xml·微软·c#·json·.net·.netcore
小螺软件宝6 天前
使用DNGuard加密并打包C# .NET Core程序为单一EXE文件
网络·.netcore
武藤一雄7 天前
C#中常见集合都有哪些?
开发语言·微软·c#·.net·.netcore
武藤一雄8 天前
.NET 中常见计时器大全
microsoft·微软·c#·.net·wpf·.netcore
武藤一雄9 天前
[.NET] 中 System.Collections.Generic命名空间详解
windows·微软·c#·asp.net·.net·.netcore
van久13 天前
.Net Core 学习:Razor Pages中 HTML 表头字段的两种写法对比
学习·html·.netcore
武藤一雄13 天前
C# 万字拆解线程间通讯?
后端·微软·c#·.net·.netcore·多线程
武藤一雄14 天前
.NET中到底什么是SignalR (持续更新)
后端·微软·c#·asp.net·.net·.netcore·signalr