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


MemoryCache.AddOrGetExisting Метод

Определение

Вставляет запись кэша в кэш.

Перегрузки

AddOrGetExisting(CacheItem, CacheItemPolicy)

Добавляет запись в кэш, используя указанный экземпляр CacheItem и сведения о способе удаления записи.

AddOrGetExisting(String, Object, DateTimeOffset, String)

Добавляет запись в кэш, используя заданную пару "ключ-значение" и абсолютное значение срока действия.

AddOrGetExisting(String, Object, CacheItemPolicy, String)

Вставляет запись в кэш, используя указанную пару "ключ-значение" и заданные сведения о методе ее вытеснения.

Комментарии

Перегрузки AddOrGetExisting метода используются для вставки записи кэша в кэш. Если запись кэша с совпадающим ключом не существует, эти методы вставляют новую запись. Если запись кэша с совпадающим ключом уже существует, они возвращают существующую запись.

AddOrGetExisting(CacheItem, CacheItemPolicy)

Исходный код:
MemoryCache.cs
Исходный код:
MemoryCache.cs
Исходный код:
MemoryCache.cs

Добавляет запись в кэш, используя указанный экземпляр CacheItem и сведения о способе удаления записи.

public:
 override System::Runtime::Caching::CacheItem ^ AddOrGetExisting(System::Runtime::Caching::CacheItem ^ item, System::Runtime::Caching::CacheItemPolicy ^ policy);
public override System.Runtime.Caching.CacheItem AddOrGetExisting (System.Runtime.Caching.CacheItem item, System.Runtime.Caching.CacheItemPolicy policy);
override this.AddOrGetExisting : System.Runtime.Caching.CacheItem * System.Runtime.Caching.CacheItemPolicy -> System.Runtime.Caching.CacheItem
Public Overrides Function AddOrGetExisting (item As CacheItem, policy As CacheItemPolicy) As CacheItem

Параметры

item
CacheItem

Добавляемый объект.

policy
CacheItemPolicy

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

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

Существующая запись кэша, если имеется запись кэша с таким же ключом; в противном случае — значение null.

Исключения

Значение свойства Valuenull.

Как абсолютное, так и скользящее значение срока действия для объекта CacheItemPolicy устанавливаются отличными от значений полей InfiniteAbsoluteExpiration и NoSlidingExpiration по умолчанию. Класс MemoryCache не может установить политику ограничения срока действия, основываясь на комбинации абсолютного срока действия и скользящего срока действия. Только один параметр срока действия можно задать явным образом при использовании экземпляра MemoryCache. Другому параметру срока действия должно быть присвоено поле InfiniteAbsoluteExpiration или поле NoSlidingExpiration.

Для свойства SlidingExpiration задано значение меньше Zero.

-или-

Для свойства SlidingExpiration задано значение, превышающее один год.

-или-

Свойство Priority не является значением перечисления CacheItemPriority.

Комментарии

Параметр item предоставляет ключ и значение, используемое методом . Если в кэше есть запись кэша с тем же ключом, что и ключ item параметра, метод возвращает существующую запись в виде экземпляра CacheItem . Если существующей записи кэша нет, метод создает новую, используя ключ и значение, предоставленные item параметром , и со сведениями о вытеснениях, указанными в параметре policy.

Предупреждение

Перегрузки методов Add и AddOrGetExisting не поддерживают свойство UpdateCallback. Таким образом, чтобы задать свойству UpdateCallback запись кэша, используйте перегрузки метода Set.

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

AddOrGetExisting(String, Object, DateTimeOffset, String)

Исходный код:
MemoryCache.cs
Исходный код:
MemoryCache.cs
Исходный код:
MemoryCache.cs

Добавляет запись в кэш, используя заданную пару "ключ-значение" и абсолютное значение срока действия.

public override object AddOrGetExisting (string key, object value, DateTimeOffset absoluteExpiration, string regionName = default);
override this.AddOrGetExisting : string * obj * DateTimeOffset * string -> obj
Public Overrides Function AddOrGetExisting (key As String, value As Object, absoluteExpiration As DateTimeOffset, Optional regionName As String = Nothing) As Object

Параметры

key
String

Уникальный идентификатор записи кэша, которую необходимо добавить.

value
Object

Данные для записи кэша.

absoluteExpiration
DateTimeOffset

Фиксированные дата и время истечения срока действия записи кэша.

regionName
String

Именованная область кэша, в которую можно добавить запись кэша. Не следует передавать значение для данного параметра. По умолчанию значение этого параметра равно null, так как класс MemoryCache не реализует области.

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

Существующая запись кэша, если имеется запись кэша с таким же ключом; в противном случае — значение null.

Исключения

value не является null.

regionName не является null.

Как абсолютное, так и скользящее значение срока действия для объекта CacheItemPolicy устанавливаются отличными от значений полей InfiniteAbsoluteExpiration и NoSlidingExpiration по умолчанию. Класс MemoryCache не может установить политику ограничения срока действия, основываясь на комбинации абсолютного срока действия и скользящего срока действия. Только один параметр срока действия можно задать явным образом при использовании экземпляра MemoryCache. Другому параметру срока действия должно быть присвоено поле InfiniteAbsoluteExpiration или NoSlidingExpiration.

Для свойства SlidingExpiration задано значение меньше Zero.

-или-

Для свойства SlidingExpiration задано значение, превышающее один год.

-или-

Свойство Priority не является значением перечисления CacheItemPriority.

Комментарии

Если в кэше нет записи кэша, ключ которой соответствует параметру key , создается новая запись кэша, и перегрузка MemoryCache.AddOrGetExisting метода возвращает значение null. Если соответствующая запись кэша существует, возвращается существующая запись.

Предупреждение

Перегрузки методов Add и AddOrGetExisting не поддерживают свойство UpdateCallback. Таким образом, чтобы задать свойству UpdateCallback запись кэша, используйте перегрузки метода Set.

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

AddOrGetExisting(String, Object, CacheItemPolicy, String)

Исходный код:
MemoryCache.cs
Исходный код:
MemoryCache.cs
Исходный код:
MemoryCache.cs

Вставляет запись в кэш, используя указанную пару "ключ-значение" и заданные сведения о методе ее вытеснения.

public override object AddOrGetExisting (string key, object value, System.Runtime.Caching.CacheItemPolicy policy, string regionName = default);
override this.AddOrGetExisting : string * obj * System.Runtime.Caching.CacheItemPolicy * string -> obj
Public Overrides Function AddOrGetExisting (key As String, value As Object, policy As CacheItemPolicy, Optional regionName As String = Nothing) As Object

Параметры

key
String

Уникальный идентификатор записи кэша, которую требуется добавить или получить.

value
Object

Данные для записи кэша.

policy
CacheItemPolicy

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

regionName
String

Именованная область кэша, в которую можно добавить запись кэша. Не следует передавать значение для данного параметра. По умолчанию значение этого параметра — null, так как класс MemoryCache не реализует области.

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

Запись кэша, если соответствующая запись кэша уже существует; в противном случае — значение null.

Исключения

value имеет значение null.

Как абсолютное, так и скользящее значение срока действия объекта CacheItemPolicy устанавливаются отличными от значений полей InfiniteAbsoluteExpiration и NoSlidingExpiration по умолчанию. Класс MemoryCache не может установить политику ограничения срока действия, основываясь на комбинации абсолютного и скользящего сроках действия. Только один параметр срока действия можно задать явным образом при использовании класса MemoryCache. Другую настройку необходимо установить как InfiniteAbsoluteExpiration или NoSlidingExpiration.

-или-

Для CacheItemPolicy указаны как обратный вызов удаления, так и обратный вызов обновления. MemoryCache поддерживает использование только одного типа обратного вызова для записи кэша.

Для свойства SlidingExpiration задано значение меньше Zero.

-или-

Свойству SlidingExpiration присвоено значение, большее, чем один год.

-или-

Свойство Priority не является значением перечисления CacheItemPriority.

Комментарии

Предупреждение

Перегрузки методов Add и AddOrGetExisting не поддерживают свойство UpdateCallback. Таким образом, чтобы задать свойству UpdateCallback запись кэша, используйте перегрузки метода Set.

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