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

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

这里如果目标参数是object类型,而实际参数是直接调用返回的明确的值类型,需要进行装箱操作,否则运行时报调用内存错误异常。

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

解释:如果返回值是void类型,则直接结束并返回结果;如果返回值是值类型,则需要手动拆箱操作,如果是引用类型,那么需要类型转换操作。

IL实现的细节,这里不做重点讨论。

【系统测试】  

1.接口实现方式,Api测试(各种标签使用方式对应的不同类型的方法调用):

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

结论:对于上述穷举的类型,各种标签使用方式皆成功打出了日志;

2.继承方式,Api测试(各种标签使用方式对应的不同类型的方法调用):

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