AOP C#在行动(续1)
2008-04-24 08:53
288 查看
今天开始考虑AOP的C#实现,对于静态的Weavor方法迷惑中。在源代码级别的编织是采用像AspectJ那样做呢,还是另辟蹊径?一开始就要让我头痛了。
AspectJ的方式是:对源代码进行解析,然后在加入点(JoinPoint)插入Aspcet的代码,形成中间文件,再编译成最终文件。这种方法产生的性能比较好,有一个缺陷就是如果修改了weaving的规则,就要重新编译。(或许可以采用某些设计模式来消除这个弱点)
另外一种思路就是一开始就采用设计模式,在JontPoint处插入delegate,以后如果需要修改规则,不需要重新编译源代码,只要通过修改xml的aspect描述文件即可。缺点是delegate有系统开销,所以性能不如前面的方法。真的很难取舍,是不是两种方法都支持呢?头痛ing...
AspectJ的方式是:对源代码进行解析,然后在加入点(JoinPoint)插入Aspcet的代码,形成中间文件,再编译成最终文件。这种方法产生的性能比较好,有一个缺陷就是如果修改了weaving的规则,就要重新编译。(或许可以采用某些设计模式来消除这个弱点)
另外一种思路就是一开始就采用设计模式,在JontPoint处插入delegate,以后如果需要修改规则,不需要重新编译源代码,只要通过修改xml的aspect描述文件即可。缺点是delegate有系统开销,所以性能不如前面的方法。真的很难取舍,是不是两种方法都支持呢?头痛ing...
相关文章推荐
- AOP C#在行动
- AOP C#在行动(续1)
- AOP C#在行动(续2)
- C# 实现AOP 的几种常见方式
- 利用C#实现AOP常见的几种方法详解
- C# AOP手动实现
- 颠覆C#王权的“魔比斯环” — 实现AOP框架的终极利器
- C# Asp.net中的AOP框架 Microsoft.CCI, Mono.Cecil, Typemock Open-AOP API, PostSharp -摘自网络 (可以利用反射 Attribute 进行面向切面编程 可以用在记录整个方法的Log方面)
- C# 实现 Aop [Emit动态生成代理类方式]
- C#实现AOP框架
- C# 用Attribute实现AOP事务
- .NET平台自带的AOP机制 转自《设计模式--基于c#的工程化实现及扩展》
- 颠覆C#王权的“魔比斯环” — 实现AOP框架的终极利器
- 使用AOP 使C#代码更清晰
- c# spring aop的简单例子
- AOP面向切面变成和C#实现多种实现
- 使用PostSharp在.NET平台上实现AOP (c# AOP)
- C# 实现 Aop [继承ContextBoundObject方式]
- 轻量级AOP框架-移植python的装饰器(Decorator)到C#(编码篇)
- C# AOP框架入门