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

商城网站建电脑建设网站服务器

商城网站建,电脑建设网站服务器,网络营销内容定位,广东网页设计师的公司排名介绍依赖注入只负责由其创建的对象实例容器或者子容器释放的时候#xff0c;会释放由其创建的对象实例。推荐使用容器来来管理我们的对象的创建和释放。操作为了演示#xff0c;我们创建一个UserService#xff0c;并让该Service继承IDisposablepublic class UserService : … 介绍依赖注入只负责由其创建的对象实例容器或者子容器释放的时候会释放由其创建的对象实例。推荐使用容器来来管理我们的对象的创建和释放。操作为了演示我们创建一个UserService并让该Service继承IDisposablepublic class UserService : IUserService, IDisposable {public int Sum(int x, int y){return x  y;}public void Dispose(){Console.WriteLine($UserService服务被释放  {this.GetHashCode()});} } public interface IUserService {int Sum(int x, int y); } 在控制器中我们通过FromServices去注入IUserService[HttpGet] public string Get([FromServices] IUserService userService, [FromServices] IUserService userService2) {Console.WriteLine($当前创建的UserService  {userService.GetHashCode()});Console.WriteLine($当前创建的UserService2  {userService2.GetHashCode()});//为当前请求创建一个子容器,一次请求会创建一次using (var scope  HttpContext.RequestServices.CreateScope()){var service  scope.ServiceProvider.GetRequiredServiceIUserService();Console.WriteLine($子容器创建的UserService  {service.GetHashCode()});Console.WriteLine($子容器创建的UserService处理完毕);}Console.WriteLine(接口处理完毕 );return DateTime.Now.ToString(); } 瞬时生命周期现在我们将刚才的服务注册为瞬时生命周期services.AddTransientIUserService, UserService(); 运行查看对象释放的时机,输出结果// 第一次请求结束 当前创建的UserService  35827753 当前创建的UserService2  4419630 子容器创建的UserService  40124269 子容器创建的UserService处理完毕 UserService服务被释放  40124269 接口处理完毕 UserService服务被释放  4419630 UserService服务被释放  35827753// 第二次请求结束        当前创建的UserService  17653682 当前创建的UserService2  42194754 子容器创建的UserService  15688314 子容器创建的UserService处理完毕 UserService服务被释放  15688314 接口处理完毕 UserService服务被释放  42194754 UserService服务被释放  17653682 通过结果可以得出结论瞬时生命周期对象的释放在这次请求结束的时候释放并且一次请求可能产生多次实例多次请求产生多次实例。但是如果我们是在跟容器进行获取的瞬时服务那么它就不是请求结束的时候释放了。ConfigureServices中注册services.AddTransientIUserService,UserService(); Configure中配置var servise  app.ApplicationServices.GetServiceIUserService(); Console.WriteLine(servise.Sum(1, 2)); 会在项目启动的时候进行输出中间调用接口并不会释放服务,当程序关闭的时候释放服务info: Microsoft.Hosting.Lifetime[0]Application is shutting down... UserService服务被释放  30995104 范围生命周期现在我们将刚才的服务注册为范围生命周期services.AddScopedIUserService, UserService(); // 或者 services.AddTransientIUserService(p  new UserService()); 运行查看对象释放的时机输出结果// 第一次请求结束 当前创建的UserService  43182754 当前创建的UserService2  43182754 子容器创建的UserService  49229074 子容器创建的UserService处理完毕 UserService服务被释放  49229074 接口处理完毕 UserService服务被释放  43182754// 第二次请求结束     当前创建的UserService  28952583 当前创建的UserService2  28952583 子容器创建的UserService  51571199 子容器创建的UserService处理完毕 UserService服务被释放  51571199 接口处理完毕 UserService服务被释放  28952583 通过结果可以得出结论范围生命周期对象的释放在这次请求结束的时候释放并且一次请求内只产生一次实例多次请求产生多次实例。单例生命周期现在我们将刚才的服务注册为范围生命周期services.AddSingletonIUserService, UserService(); 运行查看对象释放的时机输出结果// 第一次接口请求结束 当前创建的UserService  26224738 当前创建的UserService2  26224738 子容器创建的UserService  26224738 子容器创建的UserService处理完毕// 第二次 接口处理完毕 当前创建的UserService  26224738 当前创建的UserService2  26224738 子容器创建的UserService  26224738 子容器创建的UserService处理完毕 接口处理完毕// 当CtrlC关闭程序 info: Microsoft.Hosting.Lifetime[0]Application is shutting down... UserService服务被释放  13588007 通过结果可以得出结论单例生命周期对象的释放在程序停止运行的时候释放并且多次请求只产生一次相同的实例。当服务是我们自己创建的然后再次测试var userService  new UserService(); services.AddSingletonIUserService(userService); 只有单例模式下支持该方式可能故意限制的输出结果// 第一次请求 当前创建的UserService  62006733 当前创建的UserService2  62006733 子容器创建的UserService  62006733 子容器创建的UserService处理完毕 接口处理完毕// 第二次请求 当前创建的UserService  62006733 当前创建的UserService2  62006733 子容器创建的UserService  62006733 子容器创建的UserService处理完毕 接口处理完毕//关闭程序 info: Microsoft.Hosting.Lifetime[0]Application is shutting down... 通过结果得出结论我们自己创建的实例并不通过容器管理也就是说不会自己释放。小知识如何实现通过调用接口关闭应用程序[HttpGet] public void StopApplication([FromServices] IHostApplicationLifetime lifetime) {lifetime.StopApplication(); } 通过注入IHostApplicationLifetime然后执行StopApplication来停止应用程序。
http://www.pierceye.com/news/641708/

相关文章:

  • 网站怎么用PS做公司电脑做网站
  • 化妆品网站设计思路网站管理规范
  • 内部优惠券网站建站马鞍山网站建设电话
  • 手机可以做3d动漫视频网站广告联盟平台
  • 做了静态网站怎么显示在互联网上度假村网站模板
  • 网站改版提交河北建设工程信息网官
  • 建站宝盒v8破解版下载菜鸟怎么做网站
  • 网站建设课程 考核目的wordpress注册确认信
  • 建设银行网站公告2022国内外重大新闻事件10条
  • 门户网站建设 简报电子工程信息建设网
  • 竞价网站模板网站模板小偷
  • 怎么做视频网站网站建设设计基础
  • 惠州网站建设公司曾做网站需要学习什么知识
  • 网站制作里面链接怎么做建网站要什么工做人员
  • 网站建设费用 会计分录网站用哪些系统做的好
  • 免费建立一个个人网站网站模板怎么引用
  • 网站推广软文公司wordpress里面备份功能在哪里
  • 贵州整站优化seo平台网站建设与开发英文文献
  • 江干区住房和城乡建设局网站北京网站开发的趋势在哪里
  • 无锡网站建设选千客云网络简单网站建设推荐
  • 设计网站推荐百度贴吧带搜索的下拉框网站
  • 长春站最新发布网站开发税费
  • 北京通州住房和城乡建设部网站网站开发运营服务合同
  • 建设网站的服务端口国外用python做的网站
  • 如何实现网站生成网页手机端网站建设的注意事项
  • 澄迈网站新闻建设哪个公司建设网站
  • 怎么免费做文学网站wordpress下载及使用说明
  • 大学做兼职英语作文网站中国建筑人才培训网
  • 健康养老网站建设展馆展厅设计效果图
  • 做甜品网站的需求分析wordpress手机移动主题