.NET AOP(一)七种AOP实现方法
2016-07-26 09:03
337 查看
7Approaches for AOP in .Net
AOP在 .NET中的七种实现方法
Here are all the ways that I can think of to add AOPto your application. This mostly focus on the interception sideof things,because once you have that, everything else it just details.
在这里列表了我想到的在你的应用程序中加入AOP支持的所有方法。这里最主要的焦点是拦截,因为一旦有了拦截其它的事情都是细节。
http://www.cnblogs.com/tenghoo/archive/2010/12/22/aop.html#commentform href="http://www.cnblogs.com/tenghoo/archive/2010/12/22/aop.html#commentform" target=_blank>点击打开链
AOP在 .NET中的七种实现方法
Here are all the ways that I can think of to add AOPto your application. This mostly focus on the interception sideof things,because once you have that, everything else it just details.
在这里列表了我想到的在你的应用程序中加入AOP支持的所有方法。这里最主要的焦点是拦截,因为一旦有了拦截其它的事情都是细节。
Approach 方法 | Advantages 优点 | Disadvantages 缺点 |
Remoting Proxies 远程代理 | Easy to implement, because of the .Net framework support 容易实现,因为有.NET框架的支持。 | Somewhat heavyweight Can only be used on interfaces or MarshalByRefObjects 微显重量级 仅在接口或MarshalByRefObjects 上使用 |
Derivingfrom ContextBoundObject 从ContextBoundObject 派生 | Easiest to implement Native support for call interception 很容易实现 原生支持调用拦截 | Very costly in terms of performance 非常昂贵的性能代价 |
Compile-time subclassing ( Rhino Proxy ) 编译时子类化 | Easiest to understand 很容易理解 | Interfaces or virtual methods only 仅用于接口或虚方法 |
Runtime subclassing ( Castle Dynamic Proxy ) 运行时子类化 | Easiest to understand Very flexible 很容易理解 非常灵活 | Complex implementation (but alreadyexists) Interfaces or virtual methods only 复杂的实现(已经实现) 仅用于接口或虚方法 |
Hooking into the profiler API ( Type Mock ) 分析 API钩子 | Extremely powerful 极端强大 | Performance? Complex implementation (COM API, require separate runner, etc) 性能未知 复杂实现(COM API,需要单独运行等) |
Compile time IL-weaving ( Post Sharp / Cecil ) 编译时 IL织入 | Very powerful Good performance 非常强大 良好的性能 | Very hard to implement 实现非常困难 |
Runtime IL-weaving ( Post Sharp / Cecil ) 运行时 IL织入 | Very powerful Good performance 非常强大 朗好的性能 | Very hard to implement 实现非常困难 |
相关文章推荐
- Splay 区间维护模板
- linux基础介绍及命令整理(一)
- Linux运维学习历程-第三天-初识Linux
- BashuOJ - 4479 足球联赛 暴力 水题 重庆一中高2018级竞赛班第四次测试 2016.7.25 Problem 1
- Linux下C语言开发(进程控制—fork()、exec函数族)
- linux 的常用命令
- centos7使用imagemagick的convert命令压缩图片脚本
- Spark架构和应用
- STL中map的operator[ ]使用方法
- linux入门
- linux磁盘分区问题
- hadoop2.7.0升级到2.7.1,版本升级
- hadoop2升级的那点事情(详解)
- Hadoop升级方案(二):从Hadoop 1.0升级到2.0(1)
- iptables
- Hygieia 部署指南(1)介绍篇
- 智能产品基础架构掠影--陈智峰 ( Google )
- Strata + Hadoop World 北京大会
- IT 运行在云端,而云运行在 Linux 上
- linux下screen使用详解