caching - 如何在没有构造函数的 Asp.Net core 2 中使用内存缓存
问题描述
在 Asp.Net 应用程序(类库项目)中,使用using System.Runtime
.Caching 进行缓存在不使用构造函数的情况下工作正常。
protected ObjectCache ResponseCache
{
get
{
return MemoryCache.Default;
}
}
现在,我想在没有构造函数的情况下使用与 Asp.Net CORE 应用程序相同的方法。Asp.Net CORE 2 不支持命名空间System.Runtime.Caching
并替换它Microsoft.Extensions.Caching.Memory
我使用这个 MemoryCache memoryCache = new MemoryCache(new MemoryCacheOptions()) 但它总是创建新的对象来清除所有旧的缓存。
注意:我正在寻找没有定义构造函数的解决方案。
解决方案
您必须以 ASP.NET Core 的方式实现它。也就是说,使用依赖注入。您必须在 Startup 类的 ConfigureServices 方法中将 MemoryCache 注册为:
services.AddMemoryCache();
那么你需要在你的控制器中注入 IMemoryClass 来访问它。您可以查看文档以获取更多详细信息:在 ASP.NET Core 中缓存内存
这样,您将不必担心将依赖项传递给构造函数,因为 DI 容器会自动处理它。
推荐阅读
- mysql - 获取多列的计数并更新计数
- c# - 通过c#执行powershell脚本会抛出“
不被识别为 cmdlet 的名称”异常 - jquery - 带有模板和搜索的 Select2 依赖下拉列表
- r - 传单输出未显示在仪表板正文中
- c# - 事件发生后将图像更改为 gif
- javascript - Google Analytics 或 Intercom 等 Snippets 使用哪种设计模式?
- php - 将多个数据集作为矩阵输入的 HTML/PHP 解决方案,如电子表格
- python - 如何在 conda 中安装包的扩展?
- elasticsearch - Kibana UI 无法为 v7.0.0 加载,并在 s390x 上出现错误“Kibana 未正确加载。检查服务器输出以获取更多信息”
- android - 这段代码有什么问题?为什么不工作,它告诉我“非法开始表达”,“预期;” 它指向我(视图 V))