.NET 6 WEB API使用MemoryCache报错:无法解析IMemoryCache服务
解决.NET 6 Web API中IMemoryCache服务无法解析的问题
问题原因
你遇到的错误是因为未在依赖注入容器中注册MemoryCache服务,同时手动实例化MemoryCache的写法不符合.NET依赖注入规范,还可能引发资源管理问题。
修复步骤
1. 在Program.cs中注册MemoryCache服务
打开项目根目录的Program.cs,在服务构建阶段添加以下代码:
var builder = WebApplication.CreateBuilder(args); // 将MemoryCache服务注册到依赖注入容器 builder.Services.AddMemoryCache(); // 其他服务注册代码... var app = builder.Build(); // 中间件配置代码... app.Run();
2. 修改控制器代码,通过依赖注入获取IMemoryCache
把控制器中手动实例化MemoryCache的逻辑改成构造函数注入IMemoryCache接口:
public class myController : Controller { private readonly IMemoryCache _memoryCache; // 通过构造函数注入IMemoryCache实例 public myController(IMemoryCache memoryCache) { _memoryCache = memoryCache; } [HttpPost] public async Task<IActionResult> myAPI(Model modelS) { var users = _memoryCache.Get("UserData"); // 后续业务逻辑... return Ok(); } }
说明
- 依赖注入模式能让框架统一管理
IMemoryCache的生命周期,避免手动实例化带来的资源泄漏风险。 - 注册
AddMemoryCache()后,依赖注入容器才能正确识别并解析IMemoryCache服务,彻底解决你遇到的错误。
内容的提问来源于stack exchange,提问作者user20528130
相关产品推荐
相关产品推荐

