MemoryCache.AddOrGetExisting 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
将某个缓存项插入缓存中。
重载
AddOrGetExisting(CacheItem, CacheItemPolicy) |
使用指定的 CacheItem 实例以及有关如何逐出该项的详细信息将某个缓存项添加到缓存中。 |
AddOrGetExisting(String, Object, DateTimeOffset, String) |
通过使用指定的键、值和绝对过期值,将某个缓存项添加到缓存中。 |
AddOrGetExisting(String, Object, CacheItemPolicy, String) |
通过使用指定的键、值和有关如何逐出缓存项的指定详细信息,将某个缓存项插入缓存中。 |
注解
方法 AddOrGetExisting 重载用于在缓存中插入缓存条目。 如果不存在具有匹配键的缓存条目,则这些方法会插入新条目。 如果已存在具有匹配键的缓存项,则返回现有条目。
AddOrGetExisting(CacheItem, CacheItemPolicy)
- Source:
- MemoryCache.cs
- Source:
- MemoryCache.cs
- Source:
- 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
。
例外
Value 属性为 null
。
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)
- Source:
- MemoryCache.cs
- Source:
- MemoryCache.cs
- Source:
- 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)
- Source:
- MemoryCache.cs
- Source:
- MemoryCache.cs
- Source:
- 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 方法重载。