我有一些代码(客户端)试图缓存来自Web服务的响应。我将响应保存在从System.Web.HttpRuntime获取的System.Web.Caching.Cache对象中。
我拨打一次电话,然后再次拨打电话并输出一个控制台输出,说明它是从缓存中加载的。但我永远不会得到控制台输出。我在调试器中运行它,并在Get和Cache中设置一个断点作为条目,缓存中的密钥与我传入get的密钥相同但它仍然返回null ????? / p>
基本上代码看起来像这样。
public object MakeRequest(string uri)
{
(break point)object retList = Querier.Cache.Get(uri);
if (retList != null)
{
Console.WriteLine("Loaded from Cache");
}
retList = Querier.MakeRequest(uri);
Querier.Chache[uri] = retList;
return retList;
}
Querier是一个对象,它使我的http请求反序列化然后返回它。
任何人都知道为什么缓存返回null而不是存储在其中的对象?这个让我感到茫然,因为调试器显示内部密钥和我传入的密钥都是相同的字符串(虽然没有在同一个地方形成) 提前致谢
答案 0 :(得分:0)
所以事实证明我在这两个字符串上看起来并不是很接近,而另一个字符串与另一个字符串略有不同,它们都是通过字符串比较方法进入同一网页但不相等。