.NetCore【依赖注入:AddTransient、AddSingleton、AddScoped的区别 】
2021-02-19 01:18
标签:index html span redis https action mamicode rgba alt 一、使用方式 二、生命周期 权重: AddSingleton→AddTransient→AddScoped AddSingleton的生命周期: 项目启动-项目关闭 相当于静态类 只会有一个 AddScoped的生命周期: 请求开始-请求结束 在这次请求中获取的对象都是同一个 AddTransient的生命周期: 请求获取-(GC回收-主动释放) 每一次获取的对象都不是同一个 控制器 注入 服务: AddSingleton的对象没有变 AddScoped的对象没有变化 AddTransient的对象发生变化 ------------------------------------------------------------ 请求get AddSingleton的对象没有变 AddScoped的对象发生变化 AddTransient的对象发生变化 注意: 由于AddScoped对象是在请求的时候创建的 所以不能在AddSingleton对象中使用 甚至也不能在AddTransient对象中使用 所以权重为 AddSingleton→AddTransient→AddScoped 不然则会抛如下异常 原文地址:https://www.cnblogs.com/AnAng/p/9370913.html .NetCore【依赖注入:AddTransient、AddSingleton、AddScoped的区别 】 标签:index html span redis https action mamicode rgba alt 原文地址:https://www.cnblogs.com/qiupiaohujie/p/14406048.htmlservice.AddTransient
service.AddTransient
[HttpGet]
public
IActionResult SetTest()
{
sing.Age = 18;
sing.Name =
"小红"
;
tran.Age = 19;
tran.Name =
"小明"
;
scon.Age = 20;
scon.Name =
"小蓝"
;
aService.RedisTest();
return
Json(
"OK"
);
}
public
static
void
AddTestTran(
this
IServiceCollection service) {
service.AddTransient
service.AddSingleton
service.AddScoped
service.AddScoped
}
public
class
AService: IAService
{
private
ISingTest sing; ITranTest tran; ISconTest scon;
public
AService(ISingTest sing, ITranTest tran, ISconTest scon)
{
this
.sing = sing;
this
.tran = tran;
this
.scon = scon;
}
public
void
RedisTest()
{
}
}
文章标题:.NetCore【依赖注入:AddTransient、AddSingleton、AddScoped的区别 】
文章链接:http://soscw.com/index.php/essay/57300.html