在 httpcontext asp.net 核心缓存对象

Caching objects on httpcontext asp.net core

我正在尝试从 .net Framework MVC 5 迁移到 .net core 2.0 MVC

过去的好时光我可以通过调用

获取或设置缓存的对象
HttpContext.Current.Application.Lock();
HttpContext.Current.Application["foo"] = bar;
HttpContext.Current.Application.Lock();

但我无法将应用程序的这一部分迁移到 .net 核心。

我如何在核心 2.0 上处理这个问题?

HttpContext.Current.Application 是一项保留的功能,目的是使应用程序更容易从 ASP 经典版移植过来。自 ASP.NET 1.0 以来,它已被 HttpContext.Current.Cache 取代,自 .NET 4.0 以来,它已被 System.Runtime.Caching.

取代

但是,AspNetCore 现在缺少所有这些缓存功能。有一个轻量级缓存选项,IMemoryCache that can be used for many scenarios which is similar to HttpContext.Current.Cache. For more scalability, there is also a IDistributedCache.