AOP从静态代理到动态代理(Emit实现)详解

2020-01-05 09:19:14王冬梅

定义一个Action特性类InterceptorAttribute 继承自InterceptorBaseAttribute,里面捕获了方法调用异常,以及执行前后分别输出日志;

AOP,静态代理,动态代理,Emit

然后定义一个业务类BusinessClass 实现了IBusinessClass 接口,定义了各种类型的方法

AOP,静态代理,动态代理,Emit

AOP,静态代理,动态代理,Emit

多余的方法不贴图了。

我们把上面定义的方法调用切面标签放在业务类上,表示该类下所有的方法都执行异常过滤;

我们把Action特性放在Test方法上,表明要在 Test() 方法的 Before 和 After 调用时记录日志;

我们定义测试类:

AOP,静态代理,动态代理,Emit