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

相关推荐
MoFe12 天前
【.net core】【RabbitMq】rabbitmq在.net core中的简单使用
分布式·rabbitmq·.netcore
van久3 天前
Day15:EF Core 入门 + CodeFirst(就业核心版)
.netcore
叫我黎大侠3 天前
.NET 实战:调用千问视觉模型实现 OCR(车票识别完整教程)
阿里云·ai·c#·ocr·asp.net·.net·.netcore
van久4 天前
Day15-4:【日志】中间件和过滤器 的对比选择
.netcore
van久4 天前
Day14: 搭建企业标准的DDD 简洁版四层架构
架构·.netcore
van久5 天前
ADay15-1: 安装 EF Core 包 到 对应DDD(领域驱动设计)四层架构‌
.netcore
时光追逐者6 天前
C#/.NET/.NET Core技术前沿周刊 | 第 69 期(2026年4.01-4.12)
c#·.net·.netcore
willhuo7 天前
基于Playwright的抖音网页自动化浏览器项目使用指南
爬虫·c#·.netcore·webview
csdn_aspnet8 天前
在 .NET Core 8 中实现 CORS
.netcore·跨域·cors·.net8
csdn_aspnet10 天前
在 ASP.NET Core (WebAPI) 中启用 CORS
后端·asp.net·.netcore