RogerTong's Tech Space

文章书傲骨,程序写春秋

导航

随笔分类 -  Castle AOP

摘要:在前面的章节中,我们了解了如何通过DynamicProxy来实现对接口调用的拦截,在今天的实例中,我们将会看到一个具体的应用。 在我们所开发软件系统中,权限鉴别是一个非常重要的部分。通常在具体的需要权限访问的方法中,我们需要加入大段的代码来校验当前用户是否有权限操作当前的方法中的一些环节,不仅如此,我们甚至于还需要在方法的签名中加入相关的可代表用户身份的信息,例如: void DoOperationxx(string userId,string param1,string param2).. 在这个方法中,可能实际需要用到的参数只是"string param1,string param2",但是我们加入userId 的参数,纯粹只是为了鉴别当前用户是否有权限访问而以,导致我们的代码显得非常的冗余。 阅读全文

posted @ 2008-10-11 12:54 RogerTong 阅读(2986) 评论(5) 推荐(3)

摘要:在前面的章节中,我们知道了如何利用DynamicProxy程序集从类及接口中进行方法拦截。现在我们可以做一个更有趣并且更实用的操作:我们利用前面章节所讲述的知识来完成一次调用指令的路由操作,借此让我们对Castle AOP的应用层面有一个更感性的认识,因为这一章节要讲述的内容稍微有些复杂,我会试图尽量的将这些内容讲解清楚,由于写文章的水平有限,如有讲解不周的地方也请大家谅解…… 阅读全文

posted @ 2008-07-11 14:09 RogerTong 阅读(3542) 评论(8) 推荐(4)

摘要:Castle中有一个扩展的DynamicProxy程序集(DynamicProxy2),在这个程序集中,提供了对接口方法做动态拦截的能力。相比于对类方法的拦截,对接口方法的拦截为我们的架构设计方面提供了更大的自由度。在这里先罗列一些简单的代码,大家可以从这些代码中先思考一下接口方法的动态拦截可以应用于哪些方面,在以后的章节中,我们会深入的讨论具体的应用层面,其实这个在我们Mussel通信层的插件的实施中,于客户端产生服务端接口的 Proxy起到了决定性的作用…… 阅读全文

posted @ 2008-07-10 11:59 RogerTong 阅读(3889) 评论(1) 推荐(0)

摘要:熟悉Castle的朋友一定清楚:在Castle体系中,有一个叫Aspect#的子项目。Aspect#是一个AOP的框架,在这篇文章中,我并不打算直接开始讲Aspect#,因为Aspect#的封装过于完善,不太利于用来讲述AOP的具体实现细节。其实Aspect#的基础是 DynamicProxy,所以,我们先来讲讲DynamicProxy。 在很多朋友的眼中,AOP似乎是一个很神秘的东西,其实在我看来,AOP的本质就是对一切操作行为的拦截,在.Net中,AOP的本质更简单,纯粹是对方法的拦截。为什么这么说呢?因为在.Net中,一切的操作都是方法调用:事件的 “+=” 及 “-=”最终被转换为 Addxxxx(...),Removexxxxx(...)类型的方法;属性的 get/set 过程也被转换为 getxxxxxx(...),setxxxxxx(...)类型的方法;而方法的本身就更不用说了…… 阅读全文

posted @ 2008-07-09 16:42 RogerTong 阅读(3923) 评论(3) 推荐(0)