.NET Core中的AOP

1.AOP的应用场景

AOP全称Aspect Oriented Progarmming(面向切面编程),其实AOP对ASP.NET程序员来说一点都不神秘,你也许早就通过Filter来完成一些通用的功能,例如你使用Authorization Filter来拦截所有的用户请求,验证Http Header中是否有合法的token。或者使用Exception Filter来处理某种特定的异常。
你之所以可以拦截所有的用户请求,能够在期望的时机来执行某些通用的行为,是因为ASP.NET Core在框架级别预留了一些钩子,他允许你在特定的时机注入一些行为。对ASP.NET Core应用程序来说,这个时机就是HTTP请求在执行MVC Action的中间件时。

2..NET Core中实现AOP

本文将使用一个C#开源项目aspect-injector来描述AOP的几种常见的场景。
aspect-injector是一个非常轻量级的AOP类库,麻雀虽小,但是已经能够应对大部分AOP的应用场景:

A.在方法执行前注入一段逻辑,例如注入统一的认证逻辑

B.在方法执行后注入一段逻辑,例如将结果写入日志

C.方法前后同时注入逻辑,例如计算时间,又或者给整个方法内容包裹一个事务

以上三种方式分别对应三种不同的过滤器,学习过MVC的朋友都知道其中的用法了。

 

posted @ 2022-11-27 11:28  麦哥编程  阅读(657)  评论(0编辑  收藏  举报