故如虹,知恩;故如月,知明
排名
6
文章
6
粉丝
16
评论
8
{{item.articleTitle}}
{{item.blogName}} : {{item.content}}
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2024TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
欢迎加群交流技术

asp.net core2.0 依赖注入 AddTransient与AddScoped的区别

10459人阅读 2018/12/27 9:10 总访问:3935234 评论:0 收藏:0 手机
分类: .NET Core


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

其中AddTransient与AddSingleton比较好区别

AddTransient瞬时模式:每次都获取一个新的实例

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


而AddTransient与AddScoped的区别更不容易区别一点

首先这两种方式每次请求得到的都不是同一个对象,从这点看会发现这两个都一样。

但是我们可以继续分细一点,虽然不同的请求得到的结果不同,但是我们可以在同一次请求中去获取多次实例测试。



AddTransient注入方式获取两次实例

services.AddTransient<IUserBLL, UserBll>();


可以看到瞬时模式即使同一次请求中也是不同的对象



AddScoped注入方式获取两次实例

services.AddScoped<IUserBLL, UserBll>();

可以发现AddScoped在同一次请求中,获取多次对象得到的是同一个对象


小结:

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

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

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





欢迎加群讨论技术,群:677373950(满了,可以加,但通过不了),2群:656732739

评价