我有一个 WCF 服务,它使用 HttpRuntime.Cache 存储客户列表 60 分钟
如果您运行以下内容,为什么字符串在第 3 次包含“string3”
string mykey = "mykey-1";
List<string> strings = null;
strings = HttpRuntime.Cache[mykey] as List<string>;
if (strings == null)
{
strings = new List<string>();
strings.Add("string1");
strings.Add("string2");
HttpRuntime.Cache[mykey] = strings;
}
else
{
strings.Add("string3");
}
我希望:
第一轮:字符串对象为空,因此添加了“string1”和“string2”并将其缓存
第二轮:从缓存中拉出字符串,并添加了“string3”
第三轮:字符串从缓存中拉出,但在你再次添加'string3'之前它已经得到它。
它是共享内存还是应用程序池中的东西。如果您将其从缓存中拉出然后更改它,它会更改缓存版本而无需重新添加它。
如果我再次运行代码,我会得到另一个'string3'等
提前致谢