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.