Core 依赖注入系列二
AddTransient 用Transient方式创建的服务,当服务被请求时创建,这也意味着每次请求DI都会创建一个新的实例,我们在上面的例子使用了AddTransient方式注入服务,每次在控制器中请求IRepository接口时,都会创建一个新的Repository.cs类对象
通过AddScoped方法注册的服务不像AddTransient 方法那样每次都被创建,实际上它复用了来自同一客户端的请求,这意味着,如果我们使用这个方法来代替AddTransient,那么Repository.cs类对象将只创建一个,并在浏览器的同一个请求后续享该实例,然而,如果我们从另一台电脑的浏览器请求该应用程序,那么(对于这个新客户端)将为每个后续请求创建并共享一个新服务
AddSingleton方法仅仅在第一次请求时创建一个服务,它会在每个请求中复用,和AddScoped方法不一样,每个跨客户端的请求都会共享该服务
1 service, implType 这种变体为每个依赖项创建一个实现类型的实例,在上面我们已经使用过这中场景
2 service这个变体注册单个类型的对象,我们前面也覆盖到了这种场景
3 service(factoryFunc)这种方式使用lambda表达式注册一个服务,我们可以添加我们逻辑,我们将在后面覆盖这种场景
这个实例没有共享,我们使用Scoped服务只有一个对象创建,这个对象和ProductSum服务共享, 接下来我们看一下Scoped服务例子
重新加载页面按下F5,你将看到新的GUID被生成(因为浏览器初始化了一个新的HTTP请求)
重新运行你的应用程序,你将看到这两个GUID值是相同的,刷新页面你注意GUID值并没有改变
第一次创建Repository对象它会在后面的每次请求共享该对象,当我们有多个客户端在浏览器中请求HomeController只会创建一个Repository对象并且共享该对象,所有的客户端每次请求都会看到相同的值返回搜狐,查看更多球速体育官方入口
您可能感兴趣的文章
- 10-26ASP NET中使用AJAX的教程
- 10-26ASPNET 40从入门到精通教程
- 10-26ASPNET程序设计教程(第讲)ppt
- 10-26ASP NET 40 基础教程(C)第一章 ASP NET 40开发基础
- 10-26ASPNET程序设计教程-ASPNET初步ppt
- 10-24asp网站空间
- 10-24微软OpenAI API终止!
- 10-24ASP NET 40 基础教程(C)第八章 ADO NET 数据库编程
- 10-24一款软件开发框架—NET——APP开发直播软件体育APP
- 10-23微软 Build 2021 汇总:普通人也能编程的 GPT-3、Windows 十年重磅更新
阅读排行
推荐教程
- 09-04AMD 5800X3D平台遭殃!微软Win11系统再现大Bug
- 06-26永不过时的时装界高级色系 - 经典黑白灰
- 08-06工作中必备的12个Git命令
- 10-21微软全新 Surface Laptop 第 7 版 Pro 第 11 版上手
- 09-04什么是ASP?
- 09-02教程 - 自强学堂
- 09-28颜值与性能并存!Surface Laptop笔记本评测
- 08-267 后端框架:一句话启动
- 09-07aspnet基础教程2963241950
- 08-06杀疯了!微软:比NET7超级快更快!