NET Core 基于Aspect Injector 实现面向AOP编程
Aspect Injector 库地址:https://github.com/pamidur/aspect-injector
AOP在java spring框架中已经集成得非常好了,但是可惜NET却用的人很少,有空在git找了一下AOP的库,目前发现Aspect Injector 算是比较不错的了,小实牛刀体验了一下。
在项目中,我们为了记录程序的运行情况,往往会在方法执行前后增加日志,方便后期的排查。那我们先看看使用aop前后的代码对比:
未使用AOP的代码:
使用AOP的代码:
可以明显看到,使用aop后可以有效的减少冗余代码,让我们专心于核心业务。
一、首先,我们要先引入NUGet安装包
二、实现我们的AOP实现类,这里以LogCall 为例,来实现日志的切面
三、在我们需要使用AOP的方法处加入特性即可
四、查看执行效果:
遗憾的是对比java的AOP-AspectJ,这个库功能还是比较弱的,仅仅支持前置和后置的记录,没有异常通知、环绕通知等功能。且不是通过DI注入方式来实现,对代码具有入侵性。