我正在编写一些可以从内存缓存中受益的中间件。所以我使用依赖注入来提供一个
IMemoryCache
实例。
public async Task Invoke(HttpContext context, UserManager<ApplicationUser> userManager, IMemoryCache cache)
{
// Access cache here...
}
这似乎有效,但我有几个问题。
services.AddMemoryCache()
。但如果我不这样做,它也能正常工作。有人可以告诉我这个方法的作用以及何时需要调用它吗?package Microsoft.Extensions.DependencyInjection
package Microsoft.Extensions.Caching.Memory
package Microsoft.Extensions.Caching.Abstractions
// program.cs
// add it without options
builder.Services.AddMemoryCache();
// set global expiry for memory
builder.Services.AddMemoryCache(opts => new MemoryCacheEntryOptions()
.SetSlidingExpiration(TimeSpan.FromDays(1))
.SetAbsoluteExpiration(TimeSpan.FromDays(7))
);
// in your task (only set the absolute)
cache.Set("key", "value", TimeSpan.FromDays(1));