学海无涯

书山有路勤为径,学海无涯苦作舟
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

研究 AOP ,遇到麻烦了 :(

Posted on 2004-11-15 11:08  学海无涯  阅读(1327)  评论(3编辑  收藏  举报

    这段时间一直在研究 AOP 在 dotNet 中的实现。倒是找到了三四个这方面的例子,但是用起来总感觉有那么一点缺憾——

    1    AspectSharp
        优点:可以引入自定义的上下文信息。
        缺点:要遵循相应的语言规范进行编码来构造所需的 Aspect 及 PointCut ,感觉不如 xml 文件正规和方便。

    2    NAOP(AOP.NET)
        优点:通过 xml 配置文件来定义 Aspect 和 PointCut ,方便直观。
        缺点:无法引入所需的上下文信息,功能受到很大的限制。(或许是可以引入,而我没有找到相应的办法)

    3    AOP on MSDN
        优点:利用可扩展的元数据来定义 Aspect 和 PointCut ,充分利用了 dotNet 的语言特性的优势。
        缺点:上下文信息必须通过继承 System.ContextBoundObject 类才能获得。由于 C# 语言不支持多继承,因此使用范围受到了很大的限制。

    或许是 dotNet 起步较晚,再加上 AOP 思想本身也不够成熟吧,至今没有找到一个比较完美的实现。如果实在等不及的话,只能在这些开源项目的基础上改一改,先满足自己的需求再说了。