Cache.Add 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
使用相依性、期限和優先權原則,將指定項目加入 Cache 物件,並且您也可以從 Cache
移除插入項目時使用委派 (Delegate) 來告知您的應用程式。
public:
System::Object ^ Add(System::String ^ key, System::Object ^ value, System::Web::Caching::CacheDependency ^ dependencies, DateTime absoluteExpiration, TimeSpan slidingExpiration, System::Web::Caching::CacheItemPriority priority, System::Web::Caching::CacheItemRemovedCallback ^ onRemoveCallback);
public object Add (string key, object value, System.Web.Caching.CacheDependency dependencies, DateTime absoluteExpiration, TimeSpan slidingExpiration, System.Web.Caching.CacheItemPriority priority, System.Web.Caching.CacheItemRemovedCallback onRemoveCallback);
member this.Add : string * obj * System.Web.Caching.CacheDependency * DateTime * TimeSpan * System.Web.Caching.CacheItemPriority * System.Web.Caching.CacheItemRemovedCallback -> obj
Public Function Add (key As String, value As Object, dependencies As CacheDependency, absoluteExpiration As DateTime, slidingExpiration As TimeSpan, priority As CacheItemPriority, onRemoveCallback As CacheItemRemovedCallback) As Object
參數
- key
- String
用來參考項目的快取索引鍵。
- value
- Object
加入至快取的項目。
- dependencies
- CacheDependency
項目的檔案或快取索引鍵相依性。 任何相依性變更時,物件會變成無效並從快取中移除。 如果沒有相依性,這個參數就會包含 null
。
- absoluteExpiration
- DateTime
新增的物件過期並從快取中移除的時間。 如果您使用 Sliding Expiration,則 absoluteExpiration
參數必須為 NoAbsoluteExpiration。
- slidingExpiration
- TimeSpan
上次存取加入物件的時間與該物件到期的時間之間隔。 如果這個值等於二十分鐘,那麼物件會在最後存取的二十分鐘後過期,並從快取中移除。 如果您是使用 Absolute Expiration,則 slidingExpiration
參數必須為 NoSlidingExpiration。
- priority
- CacheItemPriority
物件的相對花費,如 CacheItemPriority 列舉型別所示。 在其清除物件時,快取會使用這個值;花費較低的物件會在花費較高的物件之前從快取移除。
- onRemoveCallback
- CacheItemRemovedCallback
當物件從快取移除時,會呼叫委派 (如果有提供的話)。 您可以使用這個在它們的物件從快取刪除時告知應用程式。
傳回
如果加入的項目先前已儲存在快取中,則為表示此項目的物件,否則為 null
。
例外狀況
key
或 value
參數是設定為 null
。
slidingExpiration
參數設定為小於 TimeSpan.Zero
或多於一年。
您要為 Cache
加入的項目都會設定 absoluteExpiration
和 slidingExpiration
參數。
範例
下列範例會 AddItemToCache
建立方法。 呼叫這個方法時,它會將 屬性設定itemRemoved
為 false
,並使用委派的新實例CacheItemRemovedCallback註冊onRemove
方法。 委派的簽章用於 RemovedCallback
方法中。 方法 AddItemToCache
接著會檢查與快取中索引鍵相關聯的 Key1
值。 如果值為 null
,則方法會將 Add
專案放在快取中,其索引鍵 Key1
為 、值為 Value 1
、絕對到期為 60 秒,以及高快取優先順序。 它也會使用 onRemove
方法作為自變數。 這可讓 RemovedCallback
從快取中移除此專案時呼叫 方法。
注意
如需如何使用 類別和CacheItemRemovedCallback委派的CacheDependency範例,請參閱快取應用程式數據。
public void AddItemToCache(Object sender, EventArgs e) {
itemRemoved = false;
onRemove = new CacheItemRemovedCallback(this.RemovedCallback);
if (Cache["Key1"] == null)
Cache.Add("Key1", "Value 1", null, DateTime.Now.AddSeconds(60), Cache.NoSlidingExpiration, CacheItemPriority.High, onRemove);
}
Public Sub AddItemToCache(sender As Object, e As EventArgs)
itemRemoved = false
onRemove = New CacheItemRemovedCallback(AddressOf Me.RemovedCallback)
If (IsNothing(Cache("Key1"))) Then
Cache.Add("Key1", "Value 1", Nothing, DateTime.Now.AddSeconds(60), Cache.NoSlidingExpiration, CacheItemPriority.High, onRemove)
End If
End Sub
備註
如果具有相同 key
參數的專案已經儲存在 中 Cache
,則呼叫這個方法會以無訊息方式失敗。 若要使用相同的key
參數覆寫現有的Cache
專案,請使用 Insert 方法。
您無法同時 absoluteExpiration
設定 和 slidingExpiration
參數。 如果您要在特定時間到期快取專案,請將 參數設定為特定時間,並將 slidingExpiration
參數設定absoluteExpiration
為 NoSlidingExpiration。
如果您希望快取專案在上次存取項目之後經過一段時間之後到期,請將 參數設定為到期間隔,並將 absoluteExpiration
參數設定slidingExpiration
為 NoAbsoluteExpiration。