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注入方式来实现,对代码具有入侵性。

posted @ 2020-05-07 17:01  谭洪军  阅读(957)  评论(0编辑  收藏  举报