niwalker的专栏

Code和它们的故事

AOP C#在行动(续1)

今天开始考虑AOP的C#实现,对于静态的Weavor方法迷惑中。在源代码级别的编织是采用像AspectJ那样做呢,还是另辟蹊径?一开始就要让我头痛了。

AspectJ的方式是:对源代码进行解析,然后在加入点(JoinPoint)插入Aspcet的代码,形成中间文件,再编译成最终文件。这种方法产生的性能比较好,有一个缺陷就是如果修改了weaving的规则,就要重新编译。(或许可以采用某些设计模式来消除这个弱点)

另外一种思路就是一开始就采用设计模式,在JontPoint处插入delegate,以后如果需要修改规则,不需要重新编译源代码,只要通过修改xml的aspect描述文件即可。缺点是delegate有系统开销,所以性能不如前面的方法。

真的很难取舍,是不是两种方法都支持呢?头痛ing...


 

阅读更多
文章标签: aop c# 设计模式 xml
个人分类: AOP C# NET
上一篇AOP C#在行动
下一篇AOP C#在行动(续2)
想对作者说点什么? 我来说一句

AOP C#行动

zgqtxwd zgqtxwd

2008-04-24 13:16:00

阅读数:407

C#中的委托和事件(续)

2009年07月19日 95KB 下载

c# 实例代码

2007年11月04日 3.02MB 下载

没有更多推荐了,返回首页

关闭
关闭