欢迎来到球速体育·(中国)官方网站QIUSU SPORTS!

ASP.NET

当前位置: 球速体育·(中国)官方网站 > 网络编程 > ASP.NET

Core 依赖注入系列二

时间:2024-08-06 16:05:42|栏目:ASP.NET|点击:

  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对象并且共享该对象,所有的客户端每次请求都会看到相同的值返回搜狐,查看更多球速体育官方入口

上一篇:杀疯了!微软:比NET7超级快更快!

栏    目:ASP.NET

下一篇:工作中必备的12个Git命令

本文标题:Core 依赖注入系列二

本文地址:http://aihaoedu.com/wangluobiancheng/988.html

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:88888888 | 邮箱:aihaoedu.com

Copyright © 球速体育·(中国)官方网站 版权所有