gpt4 book ai didi

c# - Cache.Get 总是返回 null

转载 作者:行者123 更新时间:2023-11-30 15:38:28 25 4
gpt4 key购买 nike

我正在尝试缓存数据,但总是失败。正如您在下面的代码中看到的,我调用 Web 服务返回一个名为“类别”的数组。这个电话是成功的,我得到了信息。在用结果填充下拉列表后,我立即使用 Insert 将信息存储到缓存中。页面刷新后(我想我应该说除了回发之外的任何内容),我检查缓存以查看信息是否存在。它从来没有。在这个问题上摸不着头脑......

if (! IsPostBack)
{
//See if the results have been cached. With arrays and checking for null, you have to
//check the array itself before its elements can be checked.
string[] saveCatList = Cache.Get("Categories" + Session["sessionID"]) as string[];
if (saveCatList == null || string.IsNullOrEmpty(saveCatList[0]))
{
WBDEMOReference.getcatlist_itemcategories[] categories;
strResult = callWebServ.getcatlist(Session["sessionID"].ToString(),
out strResultText, out dNumOfCat, out categories);

for (int i = 0; i < categories.Length; i++)
{
//ddCat is the ID number of the category drop down list
ddCat.Items.Add(new ListItem(categories[i].categorydesc.ToString(),
categories[i].categorynumber.ToString()));
}

//Store the array into cache. 'Cache.Remove' will remove the cache for that key
Cache.Insert("Categories" + Session["sessionID"], categories, null,
DateTime.Now.AddMinutes(5), System.Web.Caching.Cache.NoSlidingExpiration);
}
}

最佳答案

我认为 sJhonny 在评论中得到了它。您将 categories(一个 WBDEMOReference.getcatlist_itemcategories 数组)放入缓存中,但是当您将其取出时执行 as string[]。类型与 as 关键字不匹配将导致空值。尝试将 as string[] 更改为 as WBDEMOReference.getcatlist_itemcategories[] 或添加检查以查看它是否存在而不使用 as string[] Actor 。

关于c# - Cache.Get 总是返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11401092/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com