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

相关推荐
周杰伦fans1 天前
.NET Core WebAPI 中 HTTP 请求方法详解:从新手到精通
网络协议·http·.netcore
睡前要喝豆奶粉3 天前
.NET Core Web API开发需引入的三个基本依赖配置说明
oracle·c#·.netcore
睡前要喝豆奶粉3 天前
.NET Core Web API中数据库相关配置
数据库·c#·.netcore
Archy_Wang_14 天前
Hangfire 入门与实战:在 .NET Core 中实现可靠后台任务处理
c#·.netcore
睡前要喝豆奶粉4 天前
在.NET Core Web Api中使用redis
redis·c#·.netcore
睡前要喝豆奶粉5 天前
多表分页联查——EF Core方式和Dapper方式
c#·.netcore
csdn_aspnet6 天前
.NETCore、.NET 7 和 RabbitMQ 的发布-订阅模式
rabbitmq·.netcore·.net7.
爱吃香蕉的阿豪6 天前
深入理解 .NET Core 中的 IServiceScopeFactory:用法、场景与静态类依赖注入
.netcore
sky-stars6 天前
.NET 泛型编程(泛型类、泛型方法、泛型接口、泛型委托、泛型约束)
c#·.net·.netcore
The Sheep 20236 天前
.NetCoreMVC 开发网页使用sass
.netcore·sass