深入了解依赖注入3种服务的不同

导读:本篇文章讲解 深入了解依赖注入3种服务的不同,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

ASP.NET.Core中有3中不同依赖注入
AddSingleton(),中文翻译:添加单例
AddScoped(),中文翻译:添加范围
AddTransient(),中文翻译:添加瞬态

1、AddSingleton()方法

  1. 第一次请求是创建服务的单个实例,并在需要改服务的所以地方都会复用改方法
  2. 应用程序在整个生命周期内的所有请求都会使用相同的实例

例子

//依赖注入<接口,数据源>
services.AddSingleton<IStudentRepository, MockStudentRepository>();

在这里插入图片描述
可以无限增加,每次单击都会看到计数增加

2、AddScoped()方法
在范围内的每个请求中创建一个新的Scoped服务实例

//依赖注入<接口,数据源>
services.AddScoped<IStudentRepository, MockStudentRepository>();

在这里插入图片描述
每次单击创建,学生总人数不会超过4

3、AddTransient()方法
每次请求时,都会创建一个的Transient服务实例。

//依赖注入<接口,数据源>
services.AddTransient<IStudentRepository, MockStudentRepository>();

在这里插入图片描述
每次单击创建,学生总人数都是3

总结:

服务类型 同一个Http请求访问 横跨多个不同Http请求
Singleton服务 同一个实例 同一个实例
Scoped服务 同一个实例 新实例
Transient服务 新实例 新实例

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/107142.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!