首页 > 解决方案 > 如何在没有构造函数的 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()) 但它总是创建新的对象来清除所有旧的缓存。

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

标签: cachingconstructor

解决方案


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

services.AddMemoryCache();

那么你需要在你的控制器中注入 IMemoryClass 来访问它。您可以查看文档以获取更多详细信息:在 ASP.NET Core 中缓存内存

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


推荐阅读