Windsor和DynamicProxy实现AOP

Castle通过DynamicProxy来实现动态代理每一个切面方法均需要实现接口IInterceptor。

下面通过代码的方式来学习下AOP,新建一个切入类

<span style="font-size:14px;">public class LoggingInterceptor : IInterceptor{public void Intercept(IInvocation invocation){Console.WriteLine("方法前调用");try{invocation.Proceed();}catch (Exception){Console.WriteLine("方法出错调用");throw;}finally{Console.WriteLine("方法最后调用");}}}</span>即在原来的方法中加入TryCatch块,并记录日志。客户端调用的时候只需要在类上加标签:<span style="font-size:14px;">[Interceptor(typeof(LoggingInterceptor))]public class WenZhouCharge:ICharge{}</span>前提是WenXhouCharge这个类是受Windsor IOC容器控制的。

这样在WenXhouCharge每个方法外面均会套上TryCatch并记录日志。

,风景如何,其实并不重要。重要的是,你在我的身边。

Windsor和DynamicProxy实现AOP

相关文章:

你感兴趣的文章:

标签云: