小结.NET中实现AOP开发的七种方法

在这里列表了我想到的在你的应用程序中加入AOP支持的所有方法。这里最主要的焦点是拦截,因为一旦有了拦截其它的事情都是细节。


Approach

方法


Advantages

优点


Disadvantages

缺点


Remoting Proxies

远程代理


Easy to implement, because of the .Net framework support

容易实现,因为有.NET 框架的支持。


Somewhat heavy weight
Can only be used on interfaces or MarshalByRefObjects

微显重量级

仅在接口或 MarshalByRefObjects 上使用


Deriving from 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 already exists)
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

实现非常困难

时间: 2024-10-13 19:28:02

小结.NET中实现AOP开发的七种方法的相关文章

ASP中实现分页显示的七种方法_应用技巧

在微软的ASP编程体系中,ADO对象的建立,使得从网页访问数据库成为一件易事,特别是ADO的Recordset对象使得控制数据的输出显示更为方便.自由.而在Visual InterDev6.0(以下简称VI6.0)中,由于Script Object Model(以下简称SOM).Design-Time Control(以下简称DTC)以及Data Environment Object Model(以下简称DEOM)等对象模型的引入,使网页对数据库的访问设计显得更为方便. 因为主题方面的原因,关于

ASP中实现分页显示的七种方法

在微软的ASP编程体系中,ADO对象的建立,使得从网页访问数据库成为一件易事,特别是ADO的Recordset对象使得控制数据的输出显示更为方便.自由.而在Visual InterDev6.0(以下简称VI6.0)中,由于Script Object Model(以下简称SOM).Design-Time Control(以下简称DTC)以及Data Environment Object Model(以下简称DEOM)等对象模型的引入,使网页对数据库的访问设计显得更为方便. 因为主题方面的原因,关于

Flash中实现物体运动的三种方法

现在用Flash开发的游戏是越来越多了.很多朋友也很想学习用Flash制作游戏的方法.大家知道,不管在什么游戏中,实现物体的运动是游戏的前提,而不同的游戏里物体移动的方式又不尽相同.所以,想学习制作Flash游戏的朋友今天就先随我一起学学在Flash中实现物体运动的几种方法吧.几种方法如下: 方法一:通过单击按钮实现物体的单位运动 这种方法一般在需要按键的游戏中使用.你也可以给某个实体加上这段代码,然后通过单击这个实体达到某种游戏效果. 1.打开Flash,按快捷键"Ctrl + M"

实用技巧:PHP中调用Java类的两种方法

Java语言功能强大,因此在许多情况下在php中来调用Java的功能将十分有用.在php中调用Java语言有两种方法,一种是使用php中的Java扩展模块,另一种是使用minij2ee应用服务器提供的SJOP协议实现.下面我们来比较一下这两种方法各自的特点. 1.php的Java模块 php发布版中包含一个Java扩展模块,可以用来调用Java对象,例如: <?php$system=new Java("java.lang.System");print "Java ver

七种方法打造高质量外链

  首先杭州网站优化教大家认识一下什么是高质量外链,依据笔者多年的经验来看,高质量外链是指外链网站权重高,站点相关性好,导出链接少--俗话说内容为王,外链为皇,皇又比王重要,可见外链的重要性.而高质量外链是外链里面最能够提升网站权重和关键词排名的重大法宝.既然高质量外链如此重要,那么可以通过那些方法获取高质量外链呢?今天笔者带来了七种方法,教你打造高质量外链. 1.撰写软文法 撰写软文法是笔者推荐的首选方法,得到的外链质量各位只要domain:就知道了.笔者的博客就是靠软文推广的.自己撰写软文,

Oracle中获取执行计划的几种方法分析

以下是对Oracle中获取执行计划的几种方法进行了详细的分析介绍,需要的朋友可以参考下   1. 预估执行计划 - Explain PlanExplain plan以SQL语句作为输入,得到这条SQL语句的执行计划,并将执行计划输出存储到计划表中. 首先,在你要执行的SQL语句前加explain plan for,此时将生成的执行计划存储到计划表中,语句如下: explain plan for SQL语句然后,在计划表中查询刚刚生成的执行计划,语句如下: select * from table(

黑客利用 Wi-Fi 攻击你的七种方法

黑客利用 Wi-Fi 攻击你的七种方法 黑客利用 Wi-Fi 侵犯你隐私的七种方法 Wi-Fi - 啊,你是如此的方便,却又如此的危险! 这里给大家介绍一下通过 Wi-Fi 连接"慷慨捐赠"你的身份信息的七种方法和反制措施. 利用免费热点 它们似乎无处不在,而且它们的数量会在接下来四年里增加三倍.但是它们当中很多都是不值得信任的,从你的登录凭证.email 甚至更加敏感的账户,都能被黑客用"嗅探器sniffer"软件截获 - 这种软件能截获到任何你通过该连接提交的信

SQL Server 优化存储过程的七种方法

原文:SQL Server 优化存储过程的七种方法 优化存储过程有很多种方法,下面介绍最常用的7种. 1.使用SET NOCOUNT ON选项 我们使用SELECT语句时,除了返回对应的结果集外,还会返回相应的影响行数.使用SET NOCOUNT ON后,除了数据集就不会返回额外的信息了,减小网络流量. 2.使用确定的Schema 在使用表,存储过程,函数等等时,最好加上确定的Schema.这样可以使SQL Server直接找到对应目标,避免去计划缓存中搜索.而且搜索会导致编译锁定,最终影响性能

让搜索引擎快速收录新站的七种方法

本文章要来介绍你关于让搜索引擎快速收录新站的七种方法哦,现在新站很难被收录是吧,那么我们就来看看这款如何让搜索引擎喜欢你呢,好了费话不说多了我们来看看吧. 百度快速收录的七种方法: 一.创建百度空间. 大家都知道,百度自家的产品权重都比较高.一般来说,创建的百度空间大概几天就可以收录.新站可以创建一个与自己网站内容相关的百度空间,然后在空间里添加一些文章并附上自己网站的相关链接.同时,在百度空间里的友情链接也可以加上自己的网址.这样百度在收录空间的同时也能够很方便地链接找到你的新站.通过这一步骤