如何在没有构造函数的Asp.Net core 2中使用内存缓存

时间:2018-08-07 08:56:17

标签: caching constructor

在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()),但它始终创建新对象,以清除所有旧的缓存。

注意:我正在寻找没有定义构造函数的解决方案。

1 个答案:

答案 0 :(得分:0)

您必须以ASP.NET Core方式实现它。也就是说,使用依赖注入。您必须在Startup类的ConfigureServices方法中将MemoryCache注册为:

services.AddMemoryCache();

然后,您需要在控制器中注入IMemoryClass才能访问它。您可以检查文档以了解更多详细信息:Cache in-memory in ASP.NET Core

这样,您将不必担心将依赖项传递给构造函数,因为DI容器将自动处理它。