在appSettings.json中配置System.Runtime.Caching

时间:2019-01-07 12:04:05

标签: c# asp.net asp.net-core appsettings memorycache

我正在尝试在运行于完整.NET Framework 4.7上的Asp.NET Core 2.1应用程序中配置System.Runtime.Caching.MemoryCache

在另一个非Asp.NET Core应用程序中,我在Web.config中进行配置,如下所示:

<system.runtime.caching>
  <memoryCache>
    <namedCaches>
      <add name="default" cacheMemoryLimitMegabytes="0" physicalMemoryLimitPercentage="0" pollingInterval="00:02:00" />
    </namedCaches>
  </memoryCache>
</system.runtime.caching>

但是,在Asp.NET Core 2.1应用程序中,我只有appsetting.json。如何在Asp.NET Core 2.1中配置System.Runtime.Caching.MemoryCache

1 个答案:

答案 0 :(得分:0)

我建议您看看Cache in-memory in ASP.NET Core,因为它似乎可以准确描述您的需求。

更新

您应该尝试使用AddMemoryCache重载,该重载接受用于配置缓存的lambda /方法(请参见MemoryCacheOptions),看起来可能像这样:

services.AddMemoryCache(options => 
{ 
    SizeLimit = 1024 // Can be hardcoded or read from a custom configuration value
})

更新2

如果您想在 ASP.Net Core 中使用旧程序包,则将无法使用appSettings.json将其配置为 .Net Core 使用不同的配置堆栈。

但是,仅删除wub.config文件之外的appsetings.json文件也可能有效。如果不是这样,则需要进行一些繁重的自定义操作,以便在加载缓存机制之前以某种方式从旧配置堆栈中加载新配置中的值,这可不是一件容易的事。

希望有帮助!