AOP C#在行动(续1)
2004-07-06 01:14
405 查看
今天开始考虑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)
- 使用AOP 使C#代码更清晰
- C# 用delegate实现AOP事务[C# | AOP | delegate]
- C# AOP 面向切面编程之 调用拦截
- c# spring aop的简单例子
- AOP面向切面变成和C#实现多种实现
- 使用AOP 使C#代码更清晰
- \t\tC#使用AOP动态调用WebService
- 利用C#实现AOP常见的几种方法详解
- 使用PostSharp在.NET平台上实现AOP (c# AOP)
- Emit实现简单的C# AOP框架
- C# 用Attribute实现AOP事务 [C# | AOP | Attribute | ContextAttribute | IContributeObjectSink | IMessageSink
- C# 的AOP实现
- 使用AOP 使C#代码更清晰
- 利用Attribute给C#实现AOP?
- (转)C# Aop简单扫盲及ORM实体类属性拦截示例
- 轻量级AOP框架-移植python的装饰器(Decorator)到C#(思考篇)
- C# AOP手动实现