本文由 发布,转载请注明出处,如有问题请联系我们! 发布时间: 2021-07-24.net core番外第2篇:Autofac的3种依赖注入方式(构造函数注入、属性注入和方法注入),以及在过滤器里面实现依赖注入

加载中

 

这篇文章内容接前一篇,提议能够 首先看前一篇文章,再看文中,会出现更强的实际效果。

前一篇自动跳转连接:https://www.cnblogs.com/weskynet/p/15046999.html

 

文章正文:

Autofac根据构造方法引入

如前一篇所显示,获得案例全是根据构造方法开展。这里根据构造方法获得案例,也有一种根据构造方法传到IServiceProvider开展获得。该方式能够 巨大降低构造方法传到的案例过多家造成的结构函数调用松垮。实例立即应用前篇新项目做扩展,在控制板的检测api下边,立即应用。相关实例如下图所显示:

 

 

设定中断点,并运作程序流程查询实际效果。由此可见IWeskyTest插口早已被引入进去,而且能够 浏览到

 

 

Autofac根据特性引入方法

ServiceA完成类里边,加上IServiceBIServiceC的特性。而且在ServiceA完成类里边,加上一个测试标准 Hey(),在里面对之上2个特性所相匹配的插口方式开展启用。编码以下:

 

 

及其Hey必须 添加到内部类插口IServiceA

 

 

IServiceA\B\C开展服务项目申请注册。在其中,给予特性的服务项目,申请注册情况下务必应用PropertiesAutowired方法,如下边编码所显示:

 

 

然后改变控制板里边的Test方式开展检测。相匹配编码及其表述和相匹配的运作結果如下图所显示:

 

 

Autofac根据方式引入方法

 

改变上边ServiceA的类为以下编码。相关编码表明如图所示:

 

 

对采用的IServiceAB开展服务项目申请注册。如下图所示,ServiceA里边给予了方式引入,因此必须 在申请注册A服务项目的情况下,应用OnActivated方式。在其中,RegisterServiceServiceA服务项目里边给予的必须 作为方式引入的方式,方式里边的IServiceB是必须 被方式引入的内部类(插口)。下列应用了瞬间,还可以应用别的的,沒有限定,包含ServiceB服务项目申请注册情况下,还可以应用非单例模式,不做限定。

 

 

运作程序流程,假如依次打印出ServiceA 和 ServiceB,则意味着方式引入取得成功。运作程序流程結果以下:

 

 

Filter过滤装置里边完成适用依赖注入

 

先撰写一个过滤装置WeskyFilter,承继自 ActionFilterAttribute。而且在里面加上一个特性引入的IServiceC和一个构造方法引入的IServiceD

随后在OnActionExecutingOnActionExecuted方式下边完成一个打印出的內容,而且各自打印出ServiceC案例和ServiceD案例下边的Hello方式。编码以下:

 

 

IServiceCD开展服务项目申请注册,及其申请注册WeskyFilter过滤装置,用于适用依赖注入:

 

 

在控制板里边的Test方式上边,加上过滤装置标识,并立即运作开展結果认证:

 

 

如下图所示,打印出出过滤装置里边的內容,而且取得成功浏览到ServiceCDHello方式,意味着在过滤装置里边完成依赖注入也是能够 的。

 

之上便是这篇文章内容的所有内容,谢谢观赏。

加入我们QQ群: 群号码:1079830632 WeskyNet交流群

评论(0条)

刀客源码 游客评论