一个轻量级AOP的实现(开源)

 事先声明,本项目参考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!

原文地址:https://www.cnblogs.com/xumaojun/p/8541585.html