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