MemoryCache.Set 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
将某个缓存项插入缓存中。
重载
Set(CacheItem, CacheItemPolicy) |
使用 CacheItem 实例将某个缓存项插入缓存中,以便为该缓存项提供键和值。 |
Set(String, Object, DateTimeOffset, String) |
使用键和值将某个缓存项插入缓存中,并指定基于时间的过期详细信息。 |
Set(String, Object, CacheItemPolicy, String) |
通过使用键、值和逐出设置,将某个缓存项插入缓存中。 |
注解
如果指定的条目不存在,则会创建它。 如果指定的条目存在,则更新它。
Set(CacheItem, CacheItemPolicy)
- Source:
- MemoryCache.cs
- Source:
- 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
一个包含该缓存项的逐出详细信息的对象。 此对象提供比简单绝对过期更多的逐出选项。
例外
为高速缓存项传递了无效的参数组合。 如果缓存项的策略对象上设置了以下过期详细信息,将发生这种情况:
如果 CacheItemPolicy 对象的绝对和可调过期值都设置为除 InfiniteAbsoluteExpiration 和 NoSlidingExpiration 字段的默认值以外的值。 MemoryCache 类不能基于绝对过期和可调过期设置过期策略。 使用 MemoryCache 类时,只能显式设定一个过期设置。 其他设置必须设置为 InfiniteAbsoluteExpiration 或 NoSlidingExpiration 属性。
如果为 CacheItemPolicy 对象同时指定了删除回调和更新回调。 MemoryCache 类仅支持每个缓存项使用一种类型的回调。
SlidingExpiration 属性设置为一个小于 Zero 的值。
- 或 -
SlidingExpiration 属性设置为大于一年的值。
- 或 -
Priority 不是 CacheItemPriority 枚举的值。
注解
与其他 Set 方法重载一样, Set 方法始终在缓存中放置缓存值,而不考虑是否存在具有相同键的条目。 如果缓存中不存在指定的项,则会插入新的缓存条目。 如果指定的条目已存在,则更新其值。
适用于
Set(String, Object, DateTimeOffset, String)
- Source:
- MemoryCache.cs
- Source:
- 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
。
为高速缓存项传递了无效的参数组合。 如果缓存项的策略对象上设置了以下过期详细信息,将发生这种情况:
如果 CacheItemPolicy 对象上的绝对和可调过期值都设置为除 InfiniteAbsoluteExpiration 和 NoSlidingExpiration 的默认值以外的值。 发生这种情况是因为 MemoryCache 类不支持基于绝对和可调过期的过期项。 使用 MemoryCache 类时,只能显式设定一个过期设置。 另一设置必须设置为 InfiniteAbsoluteExpiration 或 NoSlidingExpiration。
如果在 CacheItemPolicy 对象上同时指定了删除回调和更新回调。 MemoryCache 类仅支持每个缓存项使用一种类型的回调。
SlidingExpiration 属性设置为一个小于 Zero 的值。
- 或 -
SlidingExpiration 属性设置为大于一年的值。
- 或 -
- Priority 属性不是 CacheItemPriority 枚举的值。
注解
与其他 Set 方法重载一样, Set 方法始终将缓存值放入缓存中,而不考虑是否存在具有相同键的条目。 如果指定的条目不存在,则插入新的缓存条目。 如果指定的条目存在,则更新它。
参数 absoluteExpiration
指示何时应从缓存中删除条目。
删除条目会触发任何关联的更改监视器。 如果已删除的项与一个或多个 CacheItemUpdateCallbackCacheItemRemovedCallback 对象相关联,则传递到回调的删除原因包含在 属性 Removed 中。
适用于
Set(String, Object, CacheItemPolicy, String)
- Source:
- MemoryCache.cs
- Source:
- 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 类未实现区域。
例外
高速缓存项存在无效的参数组合。 如果缓存项的策略对象上设置了以下过期详细信息,将发生这种情况:
如果 CacheItemPolicy 对象上的绝对和可调过期值都设置为除 InfiniteAbsoluteExpiration 和 NoSlidingExpiration 的默认值以外的值。 这是因为 MemoryCache 类不支持基于绝对和可调过期的过期项。 使用 MemoryCache 类时,只能显式设定一个过期设置。 另一设置必须设置为 InfiniteAbsoluteExpiration 或 NoSlidingExpiration。
如果在 CacheItemPolicy 类上同时指定了删除回调和更新回调。 MemoryCache 类仅支持每个缓存项使用一种类型的回调。
SlidingExpiration 属性设置为一个小于 Zero 的值。
- 或 -
SlidingExpiration 属性设置为大于一年的值。
- 或 -
Priority 属性不是 CacheItemPriority 枚举的值。
regionName
不是 null
。
注解
与其他 Set 方法重载一样, Set 方法始终将缓存值放入缓存中,而不考虑匹配项是否已存在。 如果缓存中不存在指定的项,则会插入新的缓存条目。 如果指定的条目存在,则更新它。
删除条目会触发任何关联的更改监视器。 如果已删除的项与一个或多个 CacheItemUpdateCallbackCacheItemRemovedCallback 对象相关联,则传递到回调的删除原因包含在 属性 Removed 中。