当前位置: 首页 > news >正文

网站规划与网页设计第二版开发建设信息的网站

网站规划与网页设计第二版,开发建设信息的网站,做网站以后的趋势,wap网站开发联系电话推荐关注「码侠江湖」加星标#xff0c;时刻不忘江湖事这篇文章是 ASP.NET 6 依赖注入系列文章的第 3 篇#xff0c;点击上方蓝字可以阅读整个系列。在上一篇文章中#xff0c;我们讨论依赖注入的基本用法与生命周期。接下来#xff0c;在这篇文章中#xff0c;我们继续深… 推荐关注「码侠江湖」加星标时刻不忘江湖事这篇文章是 ASP.NET 6 依赖注入系列文章的第 3 篇点击上方蓝字可以阅读整个系列。在上一篇文章中我们讨论依赖注入的基本用法与生命周期。接下来在这篇文章中我们继续深入了解服务容器相关的概念。服务容器我们回顾一下什么是服务容器。在上一篇文章中我们提到过依赖注入系统中的服务容器会保存由依赖注入系统创建的具有有效生命周期的服务实例。「在 ASP.NET 的依赖注入系统中服务容器有根容器和子容器之分。」第一个在依赖注入系统中创建出来的容器就是根容器而且只会有一个根容器存在子容器可以有很多个。它们的区别在于「根容器中保存的实例对于所有子容器都是可见的。」「子容器中保存的的实例互相不可见。」「不同生命周期模式的服务实例会被保存在不同的容器里。」单例模式的服务实例被保存在根容器中。作用域模式的服务实例被保存在作用域的容器中作用域的容器就是子容器。由于子容器互相不可见所以作用域模式中保存的实例只会在本作用域中生存。瞬时模式的服务实例不会被保存在任何容器中的。子容器示例我们来看这个示例演示了三种不同生命周期模式的区别public interface IAccount{ } public interface IMessage{ } public interface ITool{ }public class Base {public Base(){Console.WriteLine($Created:{GetType().Name});}}public class Account: Base, IAccount {} public class Message:Base, IMessage {} public class Tool:Base, ITool {}public static void Main() {// 创建服务集合var serviceCollection  new ServiceCollection().AddTransientIAccount, Account().AddScopedIMessage, Message().AddSingletonITool, Tool();// 创建 ServiceProvider 对象代表的服务根容器var root  serviceCollection.BuildServiceProvider();// 创建子容器1var child1  root.CreateScope().ServiceProvider;// 创建子容器2var child2  root.CreateScope().ServiceProvider;// 获取子容器1的服务实例GetServiceIAccount(child1);GetServiceIMessage(child1);GetServiceITool(child1);Console.WriteLine();// 获取子容器2的服务实例GetServiceIAccount(child2);GetServiceIMessage(child2);GetServiceITool(child2); }// 为验证生命周期连续获取两次 public static void GetServiceT(IServiceProvider provider) {provider.GetServiceT();provider.GetServiceT(); }创建容器的代码与上一篇文章中的示例相同这里我们主要关注两个 CreateScope 方法的使用var root  serviceCollection.BuildServiceProvider(); var child1  root.CreateScope().ServiceProvider; var child2  root.CreateScope().ServiceProvider;通过使用根容器的 CreateScope 方法可以创建出 ServiceScope 对象它就代表了服务的作用域。每个作用域中都有一个 ServiceProvider 对象它代表服务容器。我们可以通过服务根容器去创建它的子容器。最后我们通过两个子容器去获取相应的服务实例// 获取子容器1的服务实例 GetServiceIAccount(child1); GetServiceIMessage(child1); GetServiceITool(child1);Console.WriteLine();// 获取子容器2的服务实例 GetServiceIAccount(child2); GetServiceIMessage(child2); GetServiceITool(child2);Base 类中的构造函数会在控制台中打印被创建的具体实例因此这个示例的运行结果如下通过结果可以发现Account 服务的生命周期为瞬时所以两次获取该服务的实例时都会创建一个全新的 Account 对象。Message 服务的生命周期是作用域如果在同一个子容器中去获取它的服务实例那么只会创建一个 Message 对象而这里有两个子容器所以创建了两个 Message 对象。Tool 服务的生命周期是单例单例模式的服务实例只保存在根容器上并且对所有子容器可见。由于两个子容器拥有同样的根容器所以只有第一次获取时 Tool 对象才会被创建。服务作用域每一个新创建的服务作用域ServiceScope 对象都具有一个ServiceProvider对象它代表的是服务容器。「根容器可以创建子容器子容器也可以创建子容器。」但所有的子容器都是平级的也就是说无论它是由谁创建的它都是根容器的子容器而不存在所谓的“孙子容器”。虽然根容器与子容器是父子关系但其实「子容器并不知道自己的父容器是谁它们只知道根容器是谁」。在子容器的眼中只有君没有父。对于 ASP.NET 应用来说服务作用域具有非常明确的边界也就是每个 HTTP 的请求上下文。也就是说服务作用域的生命周期与每个请求上下文是绑定在一起的。我们现在知道容器有根容器和子容器之分。其实根容器和子容器也有不同的身份我们来看这张图「顶端的是根容器也称应用容器。」「分支都是子容器它们都是根据请求创建和释放的子容器也称请求容器。」在 ASP.NET 应用初始化过程中会用到大量的内置服务实例而这些服务实例都是由应用容器提供。在具体处理某个请求的时候ASP.NET 框架会针对当前请求创建一个服务作用域对象。这个服务作用域对象中的请求容器用来提供当前请求处理过程中所需的服务实例。更多精彩内容请关注我▼▼如果喜欢我的文章那么在看和转发是对我最大的支持戳下面蓝字阅读ASP.NET 6 中间件系列推荐关注微信公众号码侠江湖                        觉得不错点个在看再走哟
http://www.zqtcl.cn/news/597476/

相关文章:

  • 国内产品网站w源码1688网站关键词描述字数
  • 网站404 模板wordpress 文字插件下载
  • 河南民基建设工程有限公司网站齐齐哈尔建设局网站首页
  • 响应式网站建设推荐乐云践新三丰云免费云服务器
  • 长沙网站建设模板uc浏览器访问网站
  • 擼擼擼做最好的导航网站陕西政务服务网注册公司流程
  • 怎样做商城网站的推广wordpress用php哪个版本好
  • 网站功能模块建设建设网站考证
  • 网站代码结构成都住建局官网报名入口
  • 吴桥县网站建设房产门户网站模板
  • 标签化网站网络服务类型及其所采用的网络协议
  • 做网站服务器应该怎么配置网页美工设计实践性教案
  • 响应式网站导航栏内容泰安网站营销推广
  • 南通营销网站开发软件开发工具名词解释
  • 吉林企业网站模板建站哪个好wordpress后台新建慢
  • 整合营销的成功案例肇庆seo优化
  • 网站关键字标签合肥高端网站建设设计公司哪家好
  • 大型企业网站设计案例免费在线看片
  • 云南网站开发公司找哪家网站弹出式链接后台怎么做
  • 电商网站的支付模块怎么做企业网站建设招标文件
  • 旅游在线网站开发十八个免费的舆情网站
  • 网站怎么申请百度小程序火车头采集发布wordpress
  • 外贸网站的推广技巧有哪些莱芜网吧
  • 溧阳城乡建设局网站ps中网站页面做多大的
  • sns社交网站 有哪些wordpress开发分类筛选
  • 黄石网站建设教程网上怎样查询企业资质
  • 国内设计师交流网站怎样做自己的网站钻钱
  • 无锡专业网站推广网络营销组合策略
  • 网站建设的安全威胁中国建设银行的网站色彩
  • 中小型企业网站建设与管理潍坊做网站哪家公司最好