1
我正试图将值存储在高速缓存中并将其恢复以提高处理时间。当我找回缓存项时,我需要计算该值。但问题是,它并没有给我存储在缓存中的原始值。取而代之的是,它给了我从缓存中获得的最新价值。C#高速缓存未显示存储在高速缓存中的原始值
我用以下来模拟我的问题。我第一次将“abc123”存储在缓存中。然后我将它改为“def”。但是当我把它拿回来时,它会显示“def”而不是“abc123”。它应该是这样吗?或者我做错了谁?谢谢。
protected void Page_Load(object sender, EventArgs e)
{
MyObj abc = (MyObj)Cache["myCache"];
if (abc != null)
{
Response.Write(abc.MyText);
Response.End();
return;
}
Response.Write(abc);
abc = new MyObj() { MyText = "abc123" };
Cache.Insert("myCache", abc, null, DateTime.Now.AddMinutes(1), TimeSpan.Zero);
abc.MyText = "def";
}
class MyObj
{
public string MyText { get; set; }
}
我认为缓存对象独立于原始对象。现在我知道他们紧密结合在一起。我将.Clone或.Copy调用放到我的代码中,并解决了所有问题。谢谢。 – TTCG 2013-03-06 11:58:16