l 使用ContextAttribute和ContextBoundObject来对对象的方法进行拦截。关于ContextAttribute的具体使用方法,读者可以参考MSDN等相关资料。
l 使用Emit来,在运行时刻动态构建被织入代码后的类,当程序调用被织入类时,实际上调用的是被修改后的类。LOOM使用的就是这种方式,但是,个人认为,LOOM目前的实现非常生硬,其可扩展性和灵活性都不是很好。
l 使用Proxy模式。这也是本文将详细介绍的方法。
l 当然,在ASP.Net项目中,我们还有一种选择,就是使用HTTPHandler和HTTPModule来对自定义对ASP.Net页面的访问,加入一些我们需要的处理。关于如何使用HTTPHandler和HTTPModule的内容,可以参考笔者的文章《ASP.Net中自定义Http处理及应用之HttpHandler篇》,以及《ASP.Net中自定义Http处理及应用之HttpModule篇》