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


MemoryCache.Set Метод

Определение

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

Перегрузки

Set(CacheItem, CacheItemPolicy)

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

Set(String, Object, DateTimeOffset, String)

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

Set(String, Object, CacheItemPolicy, String)

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

Комментарии

Если указанная запись не существует, она создается. Если указанная запись существует, она обновляется.

Set(CacheItem, CacheItemPolicy)

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

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

public:
 override void Set(System::Runtime::Caching::CacheItem ^ item, System::Runtime::Caching::CacheItemPolicy ^ policy);
public override void Set (System.Runtime.Caching.CacheItem item, System.Runtime.Caching.CacheItemPolicy policy);
override this.Set : System.Runtime.Caching.CacheItem * System.Runtime.Caching.CacheItemPolicy -> unit
Public Overrides Sub Set (item As CacheItem, policy As CacheItemPolicy)

Параметры

item
CacheItem

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

policy
CacheItemPolicy

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

Исключения

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

-или-

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

-или-

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

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

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

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

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

-или-

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

-или-

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

Комментарии

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

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

Set(String, Object, DateTimeOffset, String)

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

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

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

Параметры

key
String

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

value
Object

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

absoluteExpiration
DateTimeOffset

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

regionName
String

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

Исключения

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

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

-или-

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

  • Было передано неправильное сочетание аргументов для записи кэша. Это происходит, если для записи кэша на объекте политики заданы следующие сведения срока действия:

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

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

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

-или-

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

-или-

Комментарии

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

Параметр absoluteExpiration указывает, когда запись должна быть удалена из кэша.

При удалении записи активируются все связанные мониторы изменений. Если удаленный элемент был связан с CacheItemUpdateCallback объектом или CacheItemRemovedCallback объектом, причина удаления, передаваемая обратным вызовам, содержится в свойстве Removed .

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

Set(String, Object, CacheItemPolicy, String)

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

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

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

Параметры

key
String

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

value
Object

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

policy
CacheItemPolicy

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

regionName
String

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

Исключения

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

-или-

value равно null

-или-

Ссылка обратного вызова, которая была передан вспомогательному методу в свойстве UpdateCallback, имеет значение null.

  • Существует недопустимое сочетание аргументов для записи кэша. Это происходит, если для записи кэша на объекте политики заданы следующие сведения срока действия:

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

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

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

-или-

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

-или-

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

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

Комментарии

Как и другие Set перегрузки метода, Set метод всегда помещает значение кэша в кэш, независимо от того, существует ли соответствующая запись. Если указанная запись не существует в кэше, вставляется новая запись кэша. Если указанная запись существует, она обновляется.

При удалении записи активируются все связанные мониторы изменений. Если удаленный элемент был связан с CacheItemUpdateCallback объектом или CacheItemRemovedCallback объектом, причина удаления, передаваемая обратным вызовам, содержится в свойстве Removed .

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