ASP.NET.Core中有3中不同依赖注入
AddSingleton(),中文翻译:添加单例
AddScoped(),中文翻译:添加范围
AddTransient(),中文翻译:添加瞬态
1、AddSingleton()方法
- 第一次请求是创建服务的单个实例,并在需要改服务的所以地方都会复用改方法
- 应用程序在整个生命周期内的所有请求都会使用相同的实例
例子
//依赖注入<接口,数据源>
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