MemoryCache.Set 方法

定义

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

重载

Set(CacheItem, CacheItemPolicy)

使用 CacheItem 实例将某个缓存项插入缓存中,以便为该缓存项提供键和值。

Set(String, Object, DateTimeOffset, String)

使用键和值将某个缓存项插入缓存中,并指定基于时间的过期详细信息。

Set(String, Object, CacheItemPolicy, String)

通过使用键、值和逐出设置,将某个缓存项插入缓存中。

注解

如果指定的条目不存在,则会创建它。 如果指定的条目存在,则更新它。

Set(CacheItem, CacheItemPolicy)

Source:
MemoryCache.cs
Source:
MemoryCache.cs
Source:
MemoryCache.cs

使用 CacheItem 实例将某个缓存项插入缓存中,以便为该缓存项提供键和值。

C#
public override void Set(System.Runtime.Caching.CacheItem item, System.Runtime.Caching.CacheItemPolicy policy);

参数

item
CacheItem

表示要插入的缓存项的对象。

policy
CacheItemPolicy

一个包含该缓存项的逐出详细信息的对象。 此对象提供比简单绝对过期更多的逐出选项。

例外

itemnull

- 或 -

Key 属性为 null

- 或 -

Value 属性为 null

为高速缓存项传递了无效的参数组合。 如果缓存项的策略对象上设置了以下过期详细信息,将发生这种情况:

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

- 或 -

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

- 或 -

Priority 不是 CacheItemPriority 枚举的值。

注解

与其他 Set 方法重载一样, Set 方法始终在缓存中放置缓存值,而不考虑是否存在具有相同键的条目。 如果缓存中不存在指定的项,则会插入新的缓存条目。 如果指定的条目已存在,则更新其值。

适用于

.NET 10 (package-provided) 和其他版本
产品 版本
.NET 8 (package-provided), 9 (package-provided), 10 (package-provided)
.NET Framework 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0 (package-provided)

Set(String, Object, DateTimeOffset, String)

Source:
MemoryCache.cs
Source:
MemoryCache.cs
Source:
MemoryCache.cs

使用键和值将某个缓存项插入缓存中,并指定基于时间的过期详细信息。

C#
public override void Set(string key, object value, DateTimeOffset absoluteExpiration, string regionName = default);

参数

key
String

要插入的缓存项的唯一标识符。

value
Object

该缓存项的数据。

absoluteExpiration
DateTimeOffset

缓存项的固定的过期日期和时间。

regionName
String

缓存中的一个可向其添加缓存项的命名区域。 不要为该参数传递值。 默认情况下,此参数为null,因为 MemoryCache 类未实现区域。

例外

regionName 不是 null

keynull

Valuenull

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

- 或 -

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

- 或 -

注解

与其他 Set 方法重载一样, Set 方法始终将缓存值放入缓存中,而不考虑是否存在具有相同键的条目。 如果指定的条目不存在,则插入新的缓存条目。 如果指定的条目存在,则更新它。

参数 absoluteExpiration 指示何时应从缓存中删除条目。

删除条目会触发任何关联的更改监视器。 如果已删除的项与一个或多个 CacheItemUpdateCallbackCacheItemRemovedCallback 对象相关联,则传递到回调的删除原因包含在 属性 Removed 中。

适用于

.NET 10 (package-provided) 和其他版本
产品 版本
.NET 8 (package-provided), 9 (package-provided), 10 (package-provided)
.NET Framework 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0 (package-provided)

Set(String, Object, CacheItemPolicy, String)

Source:
MemoryCache.cs
Source:
MemoryCache.cs
Source:
MemoryCache.cs

通过使用键、值和逐出设置,将某个缓存项插入缓存中。

C#
public override void Set(string key, object value, System.Runtime.Caching.CacheItemPolicy policy, string regionName = default);

参数

key
String

要插入的缓存项的唯一标识符。

value
Object

该缓存项的数据。

policy
CacheItemPolicy

一个包含该缓存项的逐出详细信息的对象。 此对象提供比简单绝对过期更多的逐出选项。

regionName
String

缓存中的一个可向其添加缓存项的命名区域。 不要为该参数传递值。 默认情况下,此参数为null,因为 MemoryCache 类未实现区域。

例外

keynull

- 或 -

valuenull

- 或 -

已传递给 UpdateCallback 属性中的帮助程序方法的回调引用为 null

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

- 或 -

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

- 或 -

Priority 属性不是 CacheItemPriority 枚举的值。

regionName 不是 null

注解

与其他 Set 方法重载一样, Set 方法始终将缓存值放入缓存中,而不考虑匹配项是否已存在。 如果缓存中不存在指定的项,则会插入新的缓存条目。 如果指定的条目存在,则更新它。

删除条目会触发任何关联的更改监视器。 如果已删除的项与一个或多个 CacheItemUpdateCallbackCacheItemRemovedCallback 对象相关联,则传递到回调的删除原因包含在 属性 Removed 中。

适用于

.NET 10 (package-provided) 和其他版本
产品 版本
.NET 8 (package-provided), 9 (package-provided), 10 (package-provided)
.NET Framework 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0 (package-provided)