Поделиться через


Cache.Add Метод

Определение

Добавление указанного элемента в объект Cache с зависимостями, политиками сроков действия и приоритетов, а также с делегатом, которого можно использовать для уведомления приложения при удалении вставленного элемента из Cache.

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

Время истечения срока действия добавленного объекта и его удаления из кэша. Если используется скользящий срок действия, параметр absoluteExpiration должен быть NoAbsoluteExpiration.

slidingExpiration
TimeSpan

Интервал между временем последнего обращения к добавленному объекту и временем истечения срока действия этого объекта. Если это значение равно 20 минутам, срок действия объекта истечет, и он будет удален из кэша через 20 минут после последнего обращения к этому объекту. Если используется абсолютный срок действия, параметр slidingExpiration должен быть NoSlidingExpiration.

priority
CacheItemPriority

Относительная цена объекта, выраженная перечислением CacheItemPriority. Это значение используется в кэше при исключении объектов. Объекты с более низкой ценой удаляются из кэша раньше, чем объекты с более высокой ценой.

onRemoveCallback
CacheItemRemovedCallback

При наличии делегата он вызывается в случае удаления объекта из кэша. Его можно использовать для уведомления приложений при удалении объектов из кэша.

Возвращаемое значение

Объект, представляющий добавленный элемент, если элемент был сохранен в кэше ранее; в противном случае — значение null.

Исключения

Для параметра key или value указано значение null.

Для параметра slidingExpiration указано значение меньше TimeSpan.Zero или больше одного года.

Оба параметра — absoluteExpiration и slidingExpiration — заданы для элемента, который вы пытаетесь добавить в Cache.

Примеры

В следующем примере создается AddItemToCache метод . При вызове этого метода он задает свойству itemRemovedfalse значение и регистрирует onRemove метод в новом экземпляре делегата CacheItemRemovedCallback . Подпись делегата используется в методе RemovedCallback . Затем AddItemToCache метод проверяет значение, связанное с ключом Key1 в кэше. Если значение равно null, Add метод помещает элемент в кэш с ключом Key1, значением Value 1, абсолютным сроком действия 60 секунд и высоким приоритетом кэша. Он также использует метод в onRemove качестве аргумента. Это позволяет RemovedCallback вызывать метод при удалении этого элемента из кэша.

Примечание

Примеры использования CacheDependency класса и делегата см. в CacheItemRemovedCallback разделе Кэширование данных приложения.

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уже хранится в . Чтобы перезаписать существующий Cache элемент с помощью того же key параметра, используйте Insert метод .

Нельзя задать параметры absoluteExpiration и slidingExpiration . Если предполагается, что срок действия элемента кэша истекает в определенное время, задайте absoluteExpiration для параметра значение определенного времени, а slidingExpiration для параметра — значение NoSlidingExpiration.

Если предполагается, что срок действия элемента кэша истекает через некоторое время с момента последнего доступа к элементу, задайте slidingExpiration для параметра интервал срока действия, а absoluteExpiration параметру — значение NoAbsoluteExpiration.

Применяется к

См. также раздел