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
метод . При вызове этого метода он задает свойству itemRemoved
false
значение и регистрирует 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.