实现一个基于动态代理的 AOP
实现一个基于动态代理的 AOP Intro 上次看基于动态代理的 AOP 框架实现,立了一个 Flag, 自己写一个简单的 AOP 实现示例,今天过来填坑了 目前的实现是基于 Emit 来做的,后面有时间再写一个基于 Roslyn 来实现的示例 效果演示 演示代码: 切面逻辑定义: public class TryInvokeAspect : AbstractAspect { public override void Invoke(MethodInvocationContext methodInvocationContext, Action next) { Console.WriteLine($"begin invoke method {methodInvocationContext.ProxyMethod.Name} in {GetType().Name}..."); try { next(); } catch (Exception e) { Console.WriteLine($"Invoke {methodInvocationContext.ProxyMethod.DeclaringType?.FullName}.{methodInvocationContext.ProxyMethod.Name} exception"); Console.WriteLine(e); }