隐藏

.NetCore 3.1 依赖注入 AddScoped、AddTransient、AddSingleton

发布:2022/3/29 16:16:24作者:管理员 来源:本站 浏览次数:1006

.net core主要提供了三种依赖注入的方式

AddTransient瞬时模式:每次请求,都获取一个新的实例。即使同一个请求获取多次也会是不同的实例

AddScoped:每次请求,都获取一个新的实例。同一个请求获取多次会得到相同的实例

AddSingleton单例模式:每次都获取同一个实例

权重:

AddSingleton→AddTransient→AddScoped

AddSingleton的生命周期:

项目启动-项目关闭   相当于静态类  只会有一个  

AddScoped的生命周期:

请求开始-请求结束  在这次请求中获取的对象都是同一个

AddTransient的生命周期:

请求获取-(GC回收-主动释放) 每一次获取的对象都不是同一个

 

问题:如果我们需要注入的对象很多怎么办?(通过反射来解决)

新建扩展方法CoreExtensions,然后在Startup中ConfigureServices方法中加上 services.AddRepository();。