事先声明,本项目参考AOP in C#和园内大神张逸的文章,思路神马的都不是自己的!
为了让项目的代码看起来更干净,需要一个AOP!
于是就实现了一个非常简单的,非常轻量级,有多轻量级呢?
实现的AOP叫做Earthworm(蚯蚓,为什么叫这个?因为它小,它会疏通!,项目的本意也是这样,所以就叫这个!),命名空间Earthworm下有8个代码文件,包括4个公开接口,1个公开特性,1个公开的抽象类,2个内部类。所以对外部调用者而言,可见的只有6个,够轻量级了吧!
先看项目的组成!
先从简单的说吧!
4个公开接口:
IStopAdvice
View Code
IBeforeAdvice
View Code
IAfterAdvice
View Code
注释比较齐全就不说了,这三个接口是提供给“通知对象”的!
还有一个是提供给“通知对象”提供者的!
IAdviceProvider
View Code
当然这个AOP的主要部分不是这个!
来看最核心的AspectOrientedProperty和Aspect
AspectOrientedProperty
View Code
Aspect
View Code
最后是浮云般的AspectOrientedObject
///<summary>
/// 做个假哦
///</summary>
public abstract class AspectOrientedObject:ContextBoundObject{}
还有AspectOrientedAttribute
View Code
附上整个项目:下载
需探讨,加908165245!