.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(单例生命周期): 就是在项目运行期间,这个对象只会存在一个,无论在哪调用,调用到的都是一个对象.

相关推荐
观无5 小时前
Windows 本地电脑搭建一个私有的、类似 Gitee 的 Git 服务
gitee·jenkins·.netcore
武藤一雄2 天前
C# 异常(Exception)处理避坑指南
windows·microsoft·c#·.net·.netcore·鲁棒性
csdn_aspnet3 天前
在 ASP.NET Core 中使用自定义属性实现 HTTP 请求和响应加密
http·asp.net·.netcore
观无3 天前
.NET Core + Ocelot 网关 跨域 (CORS) 配置
状态模式·.netcore
csdn_aspnet3 天前
如何在 .NET Core WebAPI 和 Javascript 应用程序中安全地发送/接收密钥参数
javascript·.netcore·cryptojs
武藤一雄6 天前
C# 异步回调与等待机制
前端·microsoft·设计模式·微软·c#·.netcore
武藤一雄6 天前
C#万字详解 栈与托管堆 的底层逻辑
windows·microsoft·c#·.net·.netcore
武藤一雄6 天前
深入拆解.NET内存管理:从GC机制到高性能内存优化
windows·microsoft·c#·.net·wpf·.netcore·内存管理
武藤一雄8 天前
WPF/C# 应对消息洪峰与数据抖动的 8 种“抗压”策略
windows·微软·c#·wpf·.netcore·防抖·鲁棒性
武藤一雄9 天前
C# 竟态条件
microsoft·c#·.net·.netcore