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

原文地址:https://www.cnblogs.com/TSir/p/12844169.html