.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