架构师_程序员_码农网

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 33951|回复: 10

[.NET Core] ASP.NET Core使用Autofac实现AOP拦截

[复制链接]
发表于 2019-5-8 15:09:15 | 显示全部楼层 |阅读模式
ASP.NET Core依赖注入使用自带的IOC容器
https://www.itsvse.com/thread-7562-1-1.html
(出处: 架构师_程序员)

ASP.NET Core使用Autofac实现IOC注入
https://www.itsvse.com/thread-7563-1-1.html
(出处: 架构师_程序员)

ASP.NET Core使用Autofac实现AOP拦截
https://www.itsvse.com/thread-7566-1-1.html
(出处: 架构师_程序员)

本文主要是详解一下在ASP.NET Core中,采用替换后的Autofac来实现AOP拦截。

Aspect Oriented Programming(AOP),面向切面编程,是一个比较热门的话题。AOP主要实现的目的是针对业务处理过程中的切面进行提取,它所面对的是处理过程中的某个步骤或阶段,以获得逻辑过程中各部分之间低耦合性的隔离效果。

引入类库

nuget命令如下:
QQ截图20190508150013.jpg

采用Autofac来实现AOP

首先,我们创建一个拦截类,代码如下:

这里,需要继承IInterceptor,然后实现它的Intercept方法..我们直接将拦截内容输出到调试窗(正式项目..请根据业务来操作拦截)..

这里我通过ILogger来记录操作,参考如下:

ASP.NET Core ILogger日志使用教程
https://www.itsvse.com/thread-7565-1-1.html
(出处: 架构师_程序员)

找到我们要拦截的服务,TestService1和TestService2,我们通过两种方式来拦截。

TestService1:通过特性拦截
TestService2:通过配置拦截

代码如下:

在Startup编辑方法ConfigureServices,通过配置拦截TestService2服务,如下:

重要的代码就如下3行:

这里注意,一定要在你注入的服务后面加上EnableInterfaceInterceptors来开启你的拦截

控制器代码如下:

通过dotnet run命令启动项目,访问网址,控制台输出日志如下:

QQ截图20190508145507.jpg

发现通过aop拦截到的返回值和返回给网页的返回值是一样的,这样,我们就完成了使用Autofac进行AOP拦截。

(完)




上一篇:ASP.NET Core ILogger日志使用教程
下一篇:Django企业开发实战 高效Python Web框架指南 作者胡阳
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
发表于 2019-5-9 08:18:56 | 显示全部楼层
最好有实例源码
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
 楼主| 发表于 2019-5-9 09:11:27 | 显示全部楼层
夏天 发表于 2019-5-9 08:18
最好有实例源码

项目包含敏感信息,就不发了,教程写的已经非常详细了
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
发表于 2019-5-9 11:15:17 | 显示全部楼层
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
发表于 2019-5-14 16:39:00 | 显示全部楼层
学习了,
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
发表于 2021-11-22 14:24:55 | 显示全部楼层
学习一下AOP
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
发表于 2021-12-17 14:20:20 | 显示全部楼层
谢谢分享,来学习一下
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
发表于 2021-12-17 14:21:41 | 显示全部楼层
这种目前有框架可以实现吗?楼主都是自己写的代码?还有什么是高质量的回复...
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
发表于 2021-12-24 16:23:00 | 显示全部楼层
写的真好   学习了
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
发表于 2022-1-10 11:12:24 | 显示全部楼层
学习学习
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

免责声明:
码农网所发布的一切软件、编程资料或者文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。

Mail To:help@itsvse.com

QQ|手机版|小黑屋|架构师 ( 鲁ICP备14021824号-2 )|网站地图

GMT+8, 2024-3-29 14:57

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表