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

辞职做网站香河县最新消息

辞职做网站,香河县最新消息,wordpress app,邢台企业手机网站建设06 | 作用域与对象释放行为作用域主要由 IServiceScope 这个接口来承载对于实现 IDisposable 类的实例的对象#xff0c;容器会负责对其生命周期进行管理#xff0c;使用完毕之后#xff0c;他会释放这些对象实现 IDisposable 接口类型的释放#xff1a;1、容器只会负责由其… 06 | 作用域与对象释放行为作用域主要由 IServiceScope 这个接口来承载对于实现 IDisposable 类的实例的对象容器会负责对其生命周期进行管理使用完毕之后他会释放这些对象实现 IDisposable 接口类型的释放1、容器只会负责由其创建的对象如果这个对象是自己创建出来并放到容器里的容器不负责释放这个对象2、在容器和子容器释放时容器才会去释放这些对象也就是说容器的生命周期与其创建的对象的生命周期是有对应关系的两点建议1、在根容器最好不要创建实现了 IDisposable 瞬时服务2、避免手动创建实现了 IDisposable 对象然后塞到容器里面应该尽可能地使用容器来管理我们对象的创建和释放演示代码https://github.com/witskeeper/geektime/tree/master/samples/DependencyInjectionScopeAndDisposableDemo先看一下服务namespace DependencyInjectionScopeAndDisposableDemo.Services {public interface IOrderService{}public class DisposableOrderService : IOrderService, IDisposable{public void Dispose(){Console.WriteLine($DisposableOrderService Disposed:{this.GetHashCode()});}} }首先定义 IOrderService接着定义 IOrderService 的实现 DisposableOrderService并实现了 IDisposable 这个接口在释放的时候打印释放信息并输出对象的 HashCode接着是服务注册Startupservices.AddTransientIOrderService,DisposableOrderService();这里先注册一个瞬时服务将 IOrderService 注册进去然后看一下控制器WeatherForecastController[HttpGet] public int Get([FromServices] IOrderService orderService,[FromServices] IOrderService orderService2) {return 1; }这里 FromServices 获取了两次 IOrderService这里不需要写任何代码对它进行操作因为整个生命周期是由容器去管理的启动程序输出如下DisposableOrderService Disposed:10579059 DisposableOrderService Disposed:47945396可以看出执行完毕之后DisposableOrderService 会被释放掉并且两个对象都会被释放掉两个对象的 HashCode 不同瞬时服务在每一次获取的时候都会获得一个新的对象接着添加一行代码表示服务[HttpGet] public int Get([FromServices] IOrderService orderService,[FromServices] IOrderService orderService2) {Console.WriteLine(接口请求处理结束);return 1; }输出一下表示我们的接口已经访问完毕看一下释放时机在哪里启动程序输出如下接口请求处理结束 DisposableOrderService Disposed:35023218 DisposableOrderService Disposed:13943705由此看出接口请求处理结束后才释放对象接下来看一下 Scoped 模式服务注册services.AddScopedIOrderService(p new DisposableOrderService());控制器[HttpGet] public int Get([FromServices] IOrderService orderService,[FromServices] IOrderService orderService2) {Console.WriteLine(1);// HttpContext.RequestServices// 是当前请求的一个根容器// 应用程序根容器的一个子容器// 每个请求会创建一个容器using (IServiceScope scope HttpContext.RequestServices.CreateScope()){// 在这个子容器下面再创建一个子容器来获取服务var service scope.ServiceProvider.GetServiceIOrderService();}Console.WriteLine(2);Console.WriteLine(接口请求处理结束);return 1; }启动程序输出如下1 DisposableOrderService Disposed:31307802 2 接口请求处理结束 DisposableOrderService Disposed:31614998每次请求会获得两个释放意味着每创建一个 Scoped 的作用域每个作用域内可以是单例的
http://www.yutouwan.com/news/103076/

相关文章:

  • 网站制作的付款方式wordpress网站地图生成
  • 桂林做手机网站软件开发平台开源
  • html 网站首页dede茶叶网站模板
  • 关于企业网站建设的请示乐辰网站建设
  • 本地常州网站建设上海市开办企业一窗网上服务
  • 网络策划就业前景wordpress哪种主页更利于seo
  • 深圳营销网站设计对于网站建设的意见和建议
  • 南京网站建设招聘怎么建立微信群
  • 我在某网站网站做代理重庆网站建设网站
  • 四川淘宝网站建设方案晋城做网站公司
  • 深圳市建设网站网站空间域名申请网站
  • 企联网站建设网站有哪些备案
  • 基于thinkphp网站制作提供手机自适应网站
  • 集运网站建设宁波seo排名优化培训
  • 建设银行企业网银网站过期有哪些设计网站
  • 哪家公司做网站正规网络运营培训班
  • 建立什么网站网络营销是什么 能做什么
  • 用代码怎么建设网站WordPress多站点绑定域名
  • iis默认网站属性上传网站模板
  • 大型网站开发框架移动前端框架百度校招
  • 厦门网站推广¥做下拉去118cr落实网站建设管理
  • 贵阳做网站好的公司深圳沙头网站建设
  • wordpress新站不收录wordpress多套主题
  • 在线制作网站 如何禁止蜘蛛收录网站中上网站建设
  • 网站域名和服务器到期wordpress手机网站怎么做
  • 应用中心下载seo优化要做什么
  • 网站源码 下载杭州网络推广运营公司
  • 计算机网络技术网站建设方向工业设计是干什么的
  • 广州 海珠 建网站企业信息公示信息
  • 娱乐网站开发spspwkh5免费制作平台无水印