.Net Core Aop之IResourceFilter的具体使用

2022-04-17 02:48:06
目录
一、简介二、IResourceFilter(同步资源缓存)1、定义Filter三、IAsyncResourceFilter(异步资源缓存)四、总结

一、简介

在.net core 中Filter分为以下六大类:

1、AuthorizeAttribute(权限验证)2、IResourceFilter(资源缓存)3、IActionFilter(执行方法前后的记录)4、IResultFilter(结果生成前后扩展)5、IAlwaysRun(响应结果的补充)6、IExceptionFilter(异常处理)

二、IResourceFilter(同步资源缓存)

1、定义Filter

public class CustomerResourceFilterAttribute : AeExecutionDelegate next)        {            Console.WriteLine("CustomerResourcewww.easck.comFilterAttribute.OnResourceExecutionAsync Before");            var path = context.HttpContext.Request.Path;            if (cacheDic.ContainsKey(path))            {                context.Result = (IActionResult)cacheDic[path];            }            else            {                ResourceExecutedContext resource =await next.Invoke();                cacheDic[path] = resource.Result; // 这句话的执行就是去执行控制器的构造函数+Action                Console.WriteLine("CustomerResourceFilterAttribute.OnResourceExecutionAsync After");            }                    }    }

四、总结

不管是同步还是异步,他们的执行顺序其实都是一样的,下面是同步和异步分别打印的日志记录:

1、同步日志

.NetCoreAop之IResourceFilter的具体使用

2、异步日志

.NetCoreAop之IResourceFilter的具体使用

 到此这篇关于.Net Core Aop之IResourceFilter的具体使用的文章就介绍到这了,更多相关.Net Core Aop IResourceFilter内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!