【问题标题】:dotnet core mvc memoryCache.Get returns async response?dotnet core mvc memoryCache.Get 返回异步响应?
【发布时间】:2019-02-13 08:29:10
【问题描述】:

我正在使用 .net 核心 MVC 2.1。我正在尝试使用 ImemoryCache Get 方法

我查看了 Get 方法响应,似乎它是异步的。 它返回对象并且不允许我也放 obj.Result。

当我看到documentation 样本中没有响应是异步的。

为什么会出现这个问题?

【问题讨论】:

  • 欢迎来到 Stack Overflow。请将您的代码(和错误消息)显示为 text 而不是图像。它使它更容易理解。
  • 我的猜测是问题在于您已将任务放入缓存中,而不是放入值中。但我们无法轻易判断,因为您只显示了获取代码。
  • 尝试“var value”而不是用类型定义它。可能有助于解决错误。
  • @jon Skeet 你是对的。我推错了(设置)。

标签: c# .net-core memorycache asp.net-core-mvc-2.1


【解决方案1】:

因为内存中的数据是Task<List<ApplicationConfigurationKeyPairModel>>,但是根据您的代码,您希望得到它为IList<ApplicationConfigurationKeyPairModel>,而不需要从任务值转换为正常值。

所以如果你想正常得到它而不会出错,你应该这样做:

var allSettings = _memoryCache.TryGetValue(UtilityHelper.APPLICATION_SETTINGS_ALL, out var value);

然后你可以检查value是什么类型,并使用value.Result将其转换为列表。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-02-27
    • 1970-01-01
    • 1970-01-01
    • 2012-04-16
    • 2022-01-19
    相关资源
    最近更新 更多