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篇》