MemoryCache.AddOrGetExisting 方法

定义

将某个缓存项插入缓存中。

重载

AddOrGetExisting(CacheItem, CacheItemPolicy)

使用指定的 CacheItem 实例以及有关如何逐出该项的详细信息将某个缓存项添加到缓存中。

AddOrGetExisting(String, Object, DateTimeOffset, String)

通过使用指定的键、值和绝对过期值,将某个缓存项添加到缓存中。

AddOrGetExisting(String, Object, CacheItemPolicy, String)

通过使用指定的键、值和有关如何逐出缓存项的指定详细信息,将某个缓存项插入缓存中。

注解

方法 AddOrGetExisting 重载用于在缓存中插入缓存条目。 如果不存在具有匹配键的缓存条目,则这些方法会插入新条目。 如果已存在具有匹配键的缓存项,则返回现有条目。

AddOrGetExisting(CacheItem, CacheItemPolicy)

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 对象的局对和可调过期值都设置为除 InfiniteAbsoluteExpirationNoSlidingExpiration 字段的默认值以外的值。 MemoryCache 类不能基于绝对过期和可调过期的组合设置过期策略。 只有使用 MemoryCache 实例,才能显式设定一个过期设置。 另一过期设置必须设置为 InfiniteAbsoluteExpiration 字段或 NoSlidingExpiration 字段。

SlidingExpiration 属性设置为一个小于 Zero 的值。

- 或 -

SlidingExpiration 属性设置为大于一年的值。

- 或 -

Priority 属性不是 CacheItemPriority 枚举的值。

注解

item参数提供 方法使用的键和值。 如果缓存具有与 参数的键相同的键的 item 缓存条目,则 方法会将现有条目作为 CacheItem 实例返回。 如果没有现有的缓存条目,则 方法使用 参数提供的 item 键和值以及 指定的 policy逐出详细信息创建新的缓存条目。

警告

AddAddOrGetExisting 方法重载不支持 UpdateCallback 属性。 因此,若要设置缓存项的 UpdateCallback 属性,请改用 Set 方法重载。

适用于

AddOrGetExisting(String, Object, DateTimeOffset, String)

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 对象的局对和可调过期值都设置为除 InfiniteAbsoluteExpirationNoSlidingExpiration 字段的默认值以外的值。 MemoryCache 类不能基于绝对过期和可调过期的组合设置过期策略。 只有使用 MemoryCache 实例,才能显式设定一个过期设置。 另一过期设置必须设置为 InfiniteAbsoluteExpirationNoSlidingExpiration

SlidingExpiration 属性设置为一个小于 Zero 的值。

- 或 -

SlidingExpiration 属性设置为大于一年的值。

- 或 -

Priority 属性不是 CacheItemPriority 枚举的值。

注解

如果缓存没有其键与 参数匹配的 key 缓存条目,则会创建一个新的缓存条目,并且 MemoryCache.AddOrGetExisting 方法重载返回 null。 如果存在匹配的缓存项,则返回现有条目。

警告

AddAddOrGetExisting 方法重载不支持 UpdateCallback 属性。 因此,若要设置缓存项的 UpdateCallback 属性,请改用 Set 方法重载。

适用于

AddOrGetExisting(String, Object, CacheItemPolicy, String)

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

例外

valuenull

CacheItemPolicy 对象的绝对和可调过期值设置为除 InfiniteAbsoluteExpirationNoSlidingExpiration 的默认值以外的值。 MemoryCache 类不能基于绝对和可调过期的组合设置过期策略。 使用 MemoryCache 类时,只能显式设定一个过期设置。 另一设置必须设置为 InfiniteAbsoluteExpirationNoSlidingExpiration

- 或 -

已经为 CacheItemPolicy 指定了删除回调和更新回调。 MemoryCache 仅支持每个缓存项使用一种类型的回调。

SlidingExpiration 属性设置为一个小于 Zero 的值。

- 或 -

已将 SlidingExpiration 设置为大于一年的值。

- 或 -

Priority 属性不是 CacheItemPriority 枚举的值。

注解

警告

AddAddOrGetExisting 方法重载不支持 UpdateCallback 属性。 因此,若要设置缓存项的 UpdateCallback 属性,请改用 Set 方法重载。

适用于