浅谈基于net core框架的WebApi的AOP资源Filter做资源缓存
2022/3/10 6:14:50
本文主要是介绍浅谈基于net core框架的WebApi的AOP资源Filter做资源缓存,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
个人觉得net core框架无论是设计模式还是前后端分离,乃至AOP Filter设计来说 都是优于传统net 框架的。
讲讲底层原理和解释一下Filter框架:关于Filter方面,传统net是一律先实例化控制器再进filter,有一说一,确实不足。
而net core框架来说,先进授权filter,再进框架,再进资源filter,这就使得filter有了成为缓存的能力,core对外开放的是一个IResourceFilter接口,需要自己去实现这个接口和里面的方法。
上代码,解释一下,用字典列表代替redis实现缓存,同时在每次接口访问完成用访问的path做key,缓存结果,下次再访问时,直接给context.Result从缓存赋值,这样不会再进入控制器
public class CustomResourceFilterAttribute : Attribute, IResourceFilter
{
private static Dictionary<string, object> dictionaryCache = new Dictionary<string, object>();
public void OnResourceExecuting(ResourceExecutingContext context)
{
string key = context.HttpContext.Request.Path.ToString();
if (dictionaryCache.ContainsKey(key))
{
context.Result = dictionaryCache[key] as ObjectResult; //Result 短路器
}
Console.WriteLine("this is CustomResourceFilterAttribute.OnResourceExecuting");
}
public void OnResourceExecuted(ResourceExecutedContext context)
{
//把数据存储缓存
//Key---path;
string key = context.HttpContext.Request.Path.ToString();
ObjectResult objectResult = context.Result as ObjectResult;
dictionaryCache[key] = objectResult;
}
}
这篇关于浅谈基于net core框架的WebApi的AOP资源Filter做资源缓存的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2022-03-01沐雪多租宝商城源码从.NetCore3.1升级到.Net6的步骤
- 2024-12-06使用Microsoft.Extensions.AI在.NET中生成嵌入向量
- 2024-11-18微软研究:RAG系统的四个层次提升理解与回答能力
- 2024-11-15C#中怎么从PEM格式的证书中提取公钥?-icode9专业技术文章分享
- 2024-11-14云架构设计——如何用diagrams.net绘制专业的AWS架构图?
- 2024-05-08首个适配Visual Studio平台的国产智能编程助手CodeGeeX正式上线!C#程序员必备效率神器!
- 2024-03-30C#设计模式之十六迭代器模式(Iterator Pattern)【行为型】
- 2024-03-29c# datetime tryparse
- 2024-02-21list find index c#
- 2024-01-24convert toint32 c#