我有一个静态SQL数据集,我想存储在内存中并从一个控制器查询。例如
class HomeComponent extends Component {
static navigationOptions = {
tabBarIcon: ({ focused, tintColor }) => {
const iconName = `ios-information-circle${focused ? '' : '-outline'}`;
return <Ionicons name={iconName} size={25} color={tintColor} />;
},
};
// ...
}
使用Core 2.1,我不知道该怎么做?
如果我在控制器中创建私有列表会持续存在吗?
答案 0 :(得分:0)
控制器被实例化并随每个请求一起处理,因此在控制器上设置某些内容将不会持久存储到下一个请求。您应该使用IDistributedCache
。这就像将其注入控制器一样简单:
private readonly IDistributedCache _cache;
public FooController(IDistributedCache cache)
{
_cache = cache ?? throw new ArgumentNullException(nameof(cache));
}
然后,您只需使用GetAsync
和SetAsync
之类的方法来分别获取/设置缓存中的值。默认情况下,ASP.NET Core将满足MemoryDistributedCache
的依赖关系,这对于开发来说很好,但是你需要利用Redis或SQL Server之类的东西作为生产中的后备存储。
这一切都很清楚documented。