c# - 我无法从 MemoryCache 中获取价值
问题描述
我无法从 MemoryCache 中获取任何数据。以下代码不起作用:
List<Product> result = GetDataWithAdoNet();
var cache = new MemoryCache("demoCaching");
var cacheItem = new CacheItem("fullName", result);
var cacheItemPolicy = new CacheItemPolicy
{
AbsoluteExpiration = DateTimeOffset.Now.AddSeconds(60.0)
};
var cacheAdd = cache.Add(cacheItem, cacheItemPolicy);
var result2 = cache.GetCacheItem("fullName");
Console.WriteLine(result2.Value + " " + result2.Key);
Console.ReadLine();
我正在使用 Northwind 数据库中的 GetDataWithAdoNet 方法记录(字符串 = ProductName,小数 = UnitPrice)
result2.Value
似乎有 106 个数据项,但我无法访问里面的记录result2.Value
。result2.Value
也不能在 foreach 循环中工作。我应该怎么办?
解决方案
你要投到Cacheitem.Value
吗List<Product>
?
// prepare cache
List<Product> result = new List<Product>() { new Product(), new Product() };
var cache = new MemoryCache("demoCaching");
var cacheItem = new CacheItem("fullName", result);
var cacheItemPolicy = new CacheItemPolicy
{
AbsoluteExpiration = DateTimeOffset.Now.AddSeconds(60.0)
};
var cacheAdd = cache.Add(cacheItem, cacheItemPolicy);
// read cache
var cacheItem2 = cache.GetCacheItem("fullName");
if (cacheItem2 != null)
{
List<Product> result2 = (List<Product>)cacheItem2.Value;
foreach (var product in result2)
{
}
}
else
{
// Cache item not found
}
因为在我的电脑上它可以正常工作。
推荐阅读
- javascript - 仅使用 javascript 或 ES6 移动多维数组中的整个列
- c# - 更新整个页面的一个div的问题
- batch-file - 如何在cmd中设置cmd窗口的图标-windows 7
- android - 托管热点设备重新连接其数据后未收到推送消息
- r - 使用 plot_model() 在原始尺度上绘制边际效应
- javascript - 如何使用 jquery ajax 传递几个复选框的值
- php - number_format() 遇到的格式不正确的数值
- python - 列表中列表的产品显示为列表
- android - 即使用户权限被拒绝,也能够在android中读取文件
- sails.js - 帆 - Postgres - 无法提升