在Asp.Net应用程序(类库项目)中,使用using System.Runtime
进行缓存。在不使用构造函数的情况下,缓存可以正常工作。
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()),但它始终创建新对象,以清除所有旧的缓存。
注意:我正在寻找没有定义构造函数的解决方案。
答案 0 :(得分:0)
您必须以ASP.NET Core方式实现它。也就是说,使用依赖注入。您必须在Startup类的ConfigureServices方法中将MemoryCache注册为:
services.AddMemoryCache();
然后,您需要在控制器中注入IMemoryClass才能访问它。您可以检查文档以了解更多详细信息:Cache in-memory in ASP.NET Core
这样,您将不必担心将依赖项传递给构造函数,因为DI容器将自动处理它。