AddMemoryCacheSetup 实现思想笔记
### 一、核心设计思想AddMemoryCacheSetup 采用了 接口隔离 依赖注入 策略模式 的组合设计实现了缓存功能的解耦和可扩展性注册1: ICaching → MemoryCaching (Scoped)注册2: IMemoryCache (Singleton)### 三、设计原则解析 1. 接口隔离原则ISP问题 .NET 内置的 IMemoryCache 接口功能强大但复杂业务代码只需简单的 Get/Set 操作。解决方案 定义简化的 ICaching 接口只暴露业务需要的方法。// 简化的业务接口 public interface ICaching { object Get(string cacheKey); void Set(string cacheKey, object cacheValue, int timeSpan); }2. 依赖注入DI问题 MemoryCaching 需要底层的 IMemoryCache 来存储数据。解决方案 通过构造函数注入 IMemoryCache 由 DI 容器自动解析依赖。public class MemoryCaching : ICaching { private readonly IMemoryCache _cache; public MemoryCaching(IMemoryCache cache) // 构造函数注入 { _cache cache; } }3. 生命周期管理为什么需要两种生命周期ICaching → MemoryCaching Scoped 操作类无状态每个请求独立IMemoryCache Singleton 数据容器需要全局共享缓存数据- MemoryCaching 是工具每个请求可以有自己的工具- IMemoryCache 是仓库所有请求共享同一个仓库- 如果两者都是 Scoped缓存数据会被隔离失去意义- 如果两者都是 Singleton可能存在线程安全问题// 内存缓存 services.AddScopedICaching, MemoryCaching(); // 切换到 Redis只需改一行 services.AddScopedICaching, RedisCaching();public static void AddMemoryCacheSetup(this IServiceCollection services) { services.AddScopedICaching, MemoryCaching(); // 业务接口注册 services.AddSingletonIMemoryCache(factory // 底层缓存注册 { var cache new MemoryCache(new MemoryCacheOptions()); return cache; }); }public class MemoryCaching : ICaching { private readonly IMemoryCache _cache; public MemoryCaching(IMemoryCache cache) { _cache cache; } public object Get(string cacheKey) { return _cache.Get(cacheKey); } public void Set(string cacheKey, object cacheValue, int timeSpan) { _cache.Set(cacheKey, cacheValue, TimeSpan.FromSeconds(timeSpan * 60)); } }

相关新闻

robot_localization配置教程:EKF与UKF节点参数设置与最佳实践

robot_localization配置教程:EKF与UKF节点参数设置与最佳实践

robot_localization配置教程:EKF与UKF节点参数设置与最佳实践 【免费下载链接】ros-sensor-fusion-tutorial An in-depth step-by-step tutorial for implementing sensor fusion with robot_localization! 🛰 项目地址: https://gitcode.com/gh_mirro…

2026/7/29 23:28:58 阅读更多 →
RRFPSBar核心原理揭秘:状态栏实时FPS绘制技术详解

RRFPSBar核心原理揭秘:状态栏实时FPS绘制技术详解

RRFPSBar核心原理揭秘:状态栏实时FPS绘制技术详解 【免费下载链接】RRFPSBar Show FPS Bar instead of StatusBar on iOS 项目地址: https://gitcode.com/gh_mirrors/rr/RRFPSBar RRFPSBar是一款专为iOS开发者打造的轻量级性能监控工具,能够在状态…

2026/7/29 23:28:58 阅读更多 →
提示词失效真相:为什么你的批判性反馈总被大模型“礼貌性忽略”?

提示词失效真相:为什么你的批判性反馈总被大模型“礼貌性忽略”?

更多请点击: https://codechina.net 第一章:提示词失效真相:为什么你的批判性反馈总被大模型“礼貌性忽略”? 当你在提示词中明确写下“请指出该论证的逻辑漏洞”“不要美化回答,直接说明错误”“拒绝使用‘可能’‘或…

2026/7/29 23:28:58 阅读更多 →

最新新闻

GPG文件加密实战:从原理到应用,保护敏感数据全流程指南

GPG文件加密实战:从原理到应用,保护敏感数据全流程指南

1. 项目概述:为什么你的文件需要GPG这把“锁”?在数字世界里,我们每天都在产生和传递敏感信息——可能是公司的财务报告、个人的身份证明扫描件、尚未公开的商业计划书,或者仅仅是写给朋友的一封私密信件。这些文件一旦以明文形式…

2026/7/29 23:39:01 阅读更多 →
【芯片可靠性设计:ESD测试三大模型全解析】

【芯片可靠性设计:ESD测试三大模型全解析】

静电放电(ESD)是芯片制造和可靠性测试中最常见的"隐形杀手"。在器件级ESD测试中,HBM、MM、CDM三大模型各司其职,但它们的测试原理、应用场景和标准规范却大不相同。本文将带你一次性搞懂这三大模型的核心差异与设计要点…

2026/7/29 23:39:01 阅读更多 →
外部结果最终要解决问题。

外部结果最终要解决问题。

外部结果之所以有价值,不是因为它看起来漂亮,而是因为它改变了现实,解决了某个真实存在的问题。这句话揭示了一个底层规律:价值 解决问题后的现实改善。第一层:为什么“结果”必须解决问题? 因为世界不会为…

2026/7/29 23:39:01 阅读更多 →
《儿女亲事》12 人完整人物关系图,理清所有婚约与家族纠葛

《儿女亲事》12 人完整人物关系图,理清所有婚约与家族纠葛

不少读者读完《儿女亲事》都感慨人物关系错综复杂,堂亲、姨表、婚约牵绊、暗中陷害交织在一起,隔几天再回看,经常分不清角色立场与恩怨纠葛。千心网专门制作独家人物关系图谱,全书 12 位核心人物全覆盖,一站式理清全部…

2026/7/29 23:39:01 阅读更多 →
海导科技navynav|RTK定位设备:新一代AI语音RTK定位设备的测评

海导科技navynav|RTK定位设备:新一代AI语音RTK定位设备的测评

在高精度定位需求爆发的当下,普通GNSS设备2-10米的定位精度早已无法满足测绘、无人机导航、智能驾驶等领域的严苛要求,RTK定位设备凭借厘米级的动态定位能力,成为了高精度时空服务的核心硬件支撑。作为融合了载波相位差分技术的专业定位装备&…

2026/7/29 23:39:01 阅读更多 →
揭秘进程追踪神器witr:5分钟掌握可视化进程分析终极技巧

揭秘进程追踪神器witr:5分钟掌握可视化进程分析终极技巧

揭秘进程追踪神器witr:5分钟掌握可视化进程分析终极技巧 【免费下载链接】witr Why is this running? Trace any process, port, container, or file back to what started it - CLI TUI. 项目地址: https://gitcode.com/GitHub_Trending/wi/witr 你是否曾…

2026/7/29 23:38:01 阅读更多 →

日新闻

【RT-DETR多模态创新改进】CVPR 2025 | 独家特征融合创新改进篇 | 引入RLAB残差线性注意力模块,有效融合并强调多尺度特征,多种改进点,适合红外与可见光融合目标检测任务,有效涨点

【RT-DETR多模态创新改进】CVPR 2025 | 独家特征融合创新改进篇 | 引入RLAB残差线性注意力模块,有效融合并强调多尺度特征,多种改进点,适合红外与可见光融合目标检测任务,有效涨点

一、本文介绍 🔥本文在RT-DETR多模态融合目标检测中引入RLAB残差线性注意力模块,可在不同模态特征交互阶段进行多次残差细化,使可见光、红外等特征在尺度、语义和空间位置上更好对齐;随后将细化特征与解码器输出拼接并生成Q、K、V,通过线性注意力自适应强化关键通道、目…

2026/7/29 0:00:23 阅读更多 →
AI编程系列02:合并知识功能,给 AI 问数和 RAG 场景打基础

AI编程系列02:合并知识功能,给 AI 问数和 RAG 场景打基础

AI编程系列02:合并知识功能,给 AI 问数和 RAG 场景打基础 在上一期「AI编程系列」中,我们学习了如何构建一个基础的 AI 问答系统,通过简单的输入输出让模型回应问题。但现实世界中的 AI 应用往往需要处理更复杂的场景:…

2026/7/29 0:00:23 阅读更多 →
AI智能体开发实战:从工具调用到企业级部署

AI智能体开发实战:从工具调用到企业级部署

1. 从被动问答到主动执行:AI Agent的范式转变过去两年,大语言模型最显著的应用形态是聊天机器人——用户提问,AI回答。但真正的生产力革命发生在2023年下半年:当AI学会主动调用工具完成任务时,生产力工具的历史被彻底改…

2026/7/29 0:00:23 阅读更多 →

周新闻

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 数据集6000张 完整源码已标注数据集训练好的模型环境配置教程程序运行说明文档,可以直接使用!系统支持图片、视频、摄像头等多种方式检测裂缝,功能强大实用。 1数据集6000张 8各类别

2026/7/29 22:18:20 阅读更多 →
深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

pubg数据集 精选原图1.42万数据 1.49万标签 无任何重复、算法增强或冗余图像! pubg绝地求生目标检测数据集 1分类:e_body,14905个标签,txt格式 共计14244张图,99%为640*640尺寸图像 适合yolo目标检测、AI训练关键词&am…

2026/7/29 14:34:28 阅读更多 →
Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex检测数据集数据集详情检测类别: allies enemy tag图片总量:7247张训练集:5139张验证集:1425张测试集:683张标注状态:全部已标注,即拿即用数据格式:支持YOLO格式及其他格式&#…

2026/7/29 15:00:03 阅读更多 →

月新闻