如何以及在何处在 asp.net 核心 WebAPI 中使用/设置集合?



我需要记录每个客户端的一些临时数据。我不希望使用数据库,因为我认为收集速度很快,并且这些数据不需要长时间保存。

我应该在哪里设置集合?不知道,在一个 asp.net 核心断体中,如何让一个集合类有一个和主机一样长的生命周期,并且可以被不同的控制器访问?

您可以使用 IMemoryCache。

配置服务

services.AddControllers();

控制器

private IMemoryCache memoryCache;
public YourController(
IMemoryCache memoryCache)
{
this.memoryCache = memoryCache;
}

访问

protected static string CacheKey = "UniqueCacheKey";
public static List<YourObject> GetCachedYourList(IMemoryCache cache)
{
if (cache.TryGetValue(CacheKey, out List<YourObject> cachedList))
{
return cachedList;
}
// otherwise populate your value from database
// var yourCachedList = ...
cache.Set(CacheKey, yourCachedList, TimeSpan.FromDays(14));
return yourCachedList;
}

有关更多详细信息,请查看文档:

最新更新