Autofac依赖注入方式及过滤器中的应用

摘要

Autofac的案例都是通过构造方法获取的。还有一种方法是通过构造方法传递给IServiceProvider获取。这种方式可以大大简化构造方法。

正文

 

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

前一篇自动跳转连接: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交流群

关注不迷路

扫码下方二维码,关注宇凡盒子公众号,免费获取最新技术内幕!

温馨提示:如果您访问和下载本站资源,表示您已同意只将下载文件用于研究、学习而非其他用途。
文章版权声明 1、本网站名称:宇凡盒子
2、本站文章未经许可,禁止转载!
3、如果文章内容介绍中无特别注明,本网站压缩包解压需要密码统一是:yufanbox.com
4、本站仅供资源信息交流学习,不保证资源的可用及完整性,不提供安装使用及技术服务。点此了解
5、如果您发现本站分享的资源侵犯了您的权益,请及时通知我们,我们会在接到通知后及时处理!提交入口
0

评论0

请先

站点公告

🚀 【宇凡盒子】全网资源库转储中心

👉 注册即送VIP权限👈

👻 全站资源免费下载✅,欢迎注册!

记得 【收藏】+【关注】 谢谢!~~~

立即注册
没有账号?注册  忘记密码?

社交账号快速登录