PostSharp AOP编程:2.PostSharp的OnMethodBoundaryAspect类基本组成

简介:

首先我们下载PostSharp 2.1.5.1,选择精简版本(价格为0美元)下订单地址是:http://www.sharpcrafters.com/purchase/compare,。我们需要注册一个OpenID,然后购买下来,它会发送一个精简版的License到你的注册邮箱中。点击PostSharp2.1.5.1安装文件输入Lincense即可完成。

     PostSharp是编译时将IL语言静态注入程序中,在免费版本中我们能够使用PostSharp对方法、字段和属性进行AOP截取数据而不能对事件进行AOP截取。下面我们来看看针对方法、字段和属性的AOP处理类:

     OnMethodBoundaryAspect

     继承于此类的特性A将围绕整个方法B进行静态注入式的处理,这个特性A可以重载覆写OnMethodBoundaryAspect类的OnEntry()、OnSuccess()、OnException()、OnExit()方法。如下代码:

复制代码
    [Serializable]
public sealed class LogsAttribute : OnMethodBoundaryAspect
{
//进入函数时
public override void OnEntry(MethodExecutionArgs args)
{
base.OnEntry(args);
}
//函数执行成功时
public override void OnSuccess(MethodExecutionArgs args)
{
base.OnSuccess(args);
}
//发生异常时
public override void OnException(MethodExecutionArgs args)
{
base.OnException(args);
}
//退出函数时
public override void OnExit(MethodExecutionArgs args)
{
base.OnExit(args);
}
}
复制代码

       其覆写函数时的运行顺序和结果如下代码所示:

复制代码
        int MethodA(object arg0, int arg1)
{
//函数进入时添加OnEntry()方法
OnEntry();
try
{
// 函数在此运行完毕
//如果成功则继续运行OnSuccess()方法
OnSuccess();
return returnValue;
}
catch (Exception e)
{
//如果函数执行有问题,则运行OnException()方法
OnException();
}
finally
{
//最后执行OnExit()方法
OnExit();
}
}
复制代码

      所以我们可以通过OnMethodBoundaryAspect编写特性去围绕方法截取数据,并且处理方法内部数据。如异常处理特性、日志记录特性、缓存记录特性和权限管理特性。


本文转自程兴亮博客园博客,原文链接:http://www.cnblogs.com/chengxingliang/archive/2011/11/28/2264345.html,如需转载请自行联系原作者

相关文章
|
7月前
|
Java Spring
Spring框架AOP静态代理
一、什么是AOP面向切面编程? AOP(Aspect-Oriented Programming,面向切面编程)是一种编程范式,旨在通过将横切关注点(如日志记录、事务管理等)从主业务逻辑中分离出来,提高代码的模块化和可维护性。 二、什么是静态代理? 静态代理是在编译时就已经确定了被代理对象和代理对象的关系,代理对象在运行时不会发生改变。通过静态代理,可以在调用被代理对象的方法之前或之后执行额外的逻辑,实现功能的增强或控制。
44 2
|
设计模式 缓存 安全
Spring框架学习(五) 面向切面编程 AOP
Spring框架学习(五) 面向切面编程 AOP
126 0
Spring框架学习(五) 面向切面编程 AOP
|
Java Spring 容器
【Spring注解驱动开发】AOP核心类源码解析,这是最全的一篇了!!
昨天二狗子让我给他讲@EnableAspectJAutoProxy注解,讲到AnnotationAwareAspectJAutoProxyCreator类的源码时,二狗子消化不了了。这不,今天又来让我给他讲讲AOP的核心类。那我们就开始吧!
121 0
【Spring注解驱动开发】AOP核心类源码解析,这是最全的一篇了!!
|
监控
【ABP杂烩】面向切面编程(AOP)知识总结
原文:【ABP杂烩】面向切面编程(AOP)知识总结 目录 1.存在问题 2.AOP的概念 3.AOP应用范围 3.AOP实现方式 4.应用举例 5.结束语 本文在学习【老张的哲学】系列文章AOP相关章节后,自己归纳总结的笔记。
1149 0
|
数据安全/隐私保护 存储