售后热线:0755-26650698
86379000

 机票查询接口 短信群发软件
会员区 | 信息反馈
 首页   |  苹果心水挂牌   |  红苹果心水论坛   |  苹果心水论坛   |  苹果心水报正版   |  苹果心水挂牌图 13028850008
当前位置: 主页 > 苹果心水挂牌 >

Core30依赖注入DI

时间:2019-11-04 14:44来源:未知 作者:admin 点击:
构建Core应用程序的时候,依赖注入已成为了.NET Core的核心,这篇文章,我们理一理依赖注入的使用方法。 首先,我们创建一个ASP.NET Core Mvc项目,定义个表达的爱服务接口,中国小伙类实现这个类如下: 思考:能不能有种模式,new实例不要在使用的时候进行

  构建Core应用程序的时候,依赖注入已成为了.NET Core的核心,这篇文章,我们理一理依赖注入的使用方法。

  首先,我们创建一个ASP.NET Core Mvc项目,定义个表达的爱服务接口,中国小伙类实现这个类如下:

  思考:能不能有种模式,new实例不要在使用的时候进行创建,而是在外部或者有一个容器进行管理;这不就是ioc思想吗?好处,代码的解耦、代码更好的维护等等。

  上面的疑惑,答案是肯定的,有!并且Core 支持依赖关系注入 (DI) 软件设计模式(当然也可以兼容第三方)。我们还使用上面的代码,

  小结:在控制器中,还有几种使用如:[FromServices] 标签 、 HttpContext.RequestServices.GetServiceT;我们发现可以使用ASP.NET Core 提供了一个内置的服务容器 IServiceProvider。服务只需要在方法中注册,然后在运行时将服务注入 到使用它的类的构造函数中。框架负责创建依赖关系的实例,并在不再需要时对其进行处理。

  Singleton 仅创建一个实例。该实例在需要它的所有组件之间共享。因此始终使用同一实例。

  Scoped 每个范围创建一个实例。在对应用程序的每个请求上都会创建一个范围,同样的问题,红冰心心水论坛!因此每个请求将创建一次注册为Scoped的任何组件。

  BoyService也很简单,在构造函数中传入一个Guid,并对它进行赋值。

  每个实现类的构造函数中,我们都产生了一个新的guid,通过这个GUID,我们可以判断这个类到底重新执行过构造函数没有.

  我们发现,在一次请求中,发现单例、范围的生命周期的guid 没有变化,说明分别用的是同一个对象,而瞬态guid不同,在空调房里也不注意保暖女性回到家尽早解开,说明对象不是一个。

  我们发现通过刷新之后,单例模式的guid还是跟首次看到的一样,其他的都不同;

  总结:如果您将组件A注册为单例,则它不能依赖已注册“作用域”或“瞬态”生存期的组件。一般而言:组件不能依赖寿命短于其寿命的组件。如果默认的DI容器不能满足项目需求,可以替换成第三方的如功能强大的Autofac。返回搜狐,查看更多

(责任编辑:admin)
相关内容:
哪里有完善的ASPNET的商城源码 Core 3框架揭秘] 依赖注入:依 怎样在自己的电脑上安装aspnet Realme发布Realme 5与5 Pro和X 微软发布了支持WPF和Windows窗