所以我剛剛修復了我正在開發的框架中的一個錯誤。僞僞代碼如下所示:ASP.NET中的緩存模式
myoldObject = new MyObject { someValue = "old value" };
cache.Insert("myObjectKey", myoldObject);
myNewObject = cache.Get("myObjectKey");
myNewObject.someValue = "new value";
if(myObject.someValue != cache.Get("myObjectKey").someValue)
myObject.SaveToDatabase();
所以,基本上,我是從緩存中獲取的對象,再後來就原來的對象比較緩存的對象,看看我是否需要將其保存到數據庫以防萬一它改變了。出現這個問題的原因是原始對象是一個引用...所以改變someValue也改變了引用的緩存對象,所以它永遠不會保存回數據庫。我通過克隆緩存版本的對象來修復它,切斷引用並允許我將新對象與緩存的對象進行比較。
我的問題是:有沒有更好的方法來做到這一點,一些模式,你可以推薦?我不能是唯一一個這樣做過的人:)
有很多事情我不知道語言和語法。 +1,因爲我知道你可以在一個公共財產內部設置一個私密的私鑰。真棒隨之而來! – theo 2008-10-09 02:20:39