C#_AOP 面向切面编程

参考视频: .NET/C# AOP面向切面编程之设计进阶 - YouTube

 

介绍:面向切面编程 是对 OOP 的补充 解决类的内部变化问题

让开发者动态修改静态的面向对象模型

在不破坏封装的情况下 ,增加各种功能:公共逻辑 - 非业务逻辑

 

静态 AOP 

 

1-装饰器模式实现 AOP  (组合加继承)

A 方法 Reg

B : A 方法 Reg => Before(); Reg(); After();

 

2-代理模式实现 AOP (组合优于继承)

可以单纯组合不继承

 

动态 AOP

 

1、.Net remoting/realProxy (实现有固定写法)

注:必须继承 MarshalByRefObject 类,局限性就是继承其他类就不行了。

 

 

2、CastleProxyAOP (也是封装好的固定写法)

 注:局限性要求业务方法必须 Virtual 

 

 

 

3、Unity 的 AOP 实现 依赖注入容器

注:核心思想是实现接口,接口和注入的配置项匹配,然后实现方法前方法后的拦截实现。可以监控性能,可以接入日志

 

 引用两个库

 

Unity.Config 依赖注入的配置 - 自己配置

方法执行前 就是正常配置

方法执行后 就是先运行 next 后 return

LogBefore 方法前日志

LogAfter 方法后日志

ParameterCheck 参数检查

ExceptionThrow 异常抛出

Caching 缓存

 

posted @ 2021-11-09 18:15  匿鱼  阅读(221)  评论(0)    收藏  举报