Cache.Insert 方法

定义

Cache 对象插入项。 使用此方法的某一版本覆盖具有相同 key 参数的现有 Cache 项。

重载

Insert(String, Object, CacheDependency, DateTime, TimeSpan, CacheItemPriority, CacheItemRemovedCallback)

Cache 对象中插入对象,后者具有依赖项、到期和优先级策略以及一个委托(可用于在从 Cache 移除插入项时通知应用程序)。

Insert(String, Object, CacheDependency, DateTime, TimeSpan, CacheItemUpdateCallback)

将对象与依赖项、到期策略以及可用于在从缓存中移除项之前通知应用程序的委托一起插入到 Cache 对象中。

Insert(String, Object, CacheDependency)

Cache 中插入具有文件依赖项或键依赖项的对象。

Insert(String, Object)

Cache 对象插入项,该项带有一个缓存键引用其位置,并使用 CacheItemPriority 枚举提供的默认值。

Insert(String, Object, CacheDependency, DateTime, TimeSpan)

Cache 中插入具有依赖项和到期策略的对象。

Insert(String, Object, CacheDependency, DateTime, TimeSpan, CacheItemPriority, CacheItemRemovedCallback)

Cache 对象中插入对象,后者具有依赖项、到期和优先级策略以及一个委托(可用于在从 Cache 移除插入项时通知应用程序)。

public:
 void Insert(System::String ^ key, System::Object ^ value, System::Web::Caching::CacheDependency ^ dependencies, DateTime absoluteExpiration, TimeSpan slidingExpiration, System::Web::Caching::CacheItemPriority priority, System::Web::Caching::CacheItemRemovedCallback ^ onRemoveCallback);
public void Insert (string key, object value, System.Web.Caching.CacheDependency dependencies, DateTime absoluteExpiration, TimeSpan slidingExpiration, System.Web.Caching.CacheItemPriority priority, System.Web.Caching.CacheItemRemovedCallback onRemoveCallback);
member this.Insert : string * obj * System.Web.Caching.CacheDependency * DateTime * TimeSpan * System.Web.Caching.CacheItemPriority * System.Web.Caching.CacheItemRemovedCallback -> unit
Public Sub Insert (key As String, value As Object, dependencies As CacheDependency, absoluteExpiration As DateTime, slidingExpiration As TimeSpan, priority As CacheItemPriority, onRemoveCallback As CacheItemRemovedCallback)

参数

key
String

用于引用该对象的缓存键。

value
Object

要插入缓存中的对象。

dependencies
CacheDependency

该项的文件依赖项或缓存键依赖项。 当任何依赖项更改时,该对象即无效,并从缓存中移除。 如果没有依赖项,则此参数包含 null

absoluteExpiration
DateTime

所插入对象将到期并被从缓存中移除的时间。 要避免可能的本地时间问题(例如从标准时间改为夏时制),请使用 UtcNow 而不是 Now 作为此参数值。 如果使用绝对到期,则 slidingExpiration 参数必须为 NoSlidingExpiration

slidingExpiration
TimeSpan

最后一次访问所插入对象时与该对象到期时之间的时间间隔。 如果此值为 20 分钟的等效值,此对象将过期并将在上次访问后 20 分钟从缓存中删除。 如果使用可调到期,则 absoluteExpiration 参数必须为 NoAbsoluteExpiration

priority
CacheItemPriority

该对象相对于缓存中存储的其他项的成本,由 CacheItemPriority 枚举表示。 该值由缓存在退出对象时使用;具有较低成本的对象在具有较高成本的对象之前被从缓存移除。

onRemoveCallback
CacheItemRemovedCallback

在从缓存中移除对象时将调用的委托(如果提供)。 当从缓存中删除应用程序的对象时,可使用它来通知应用程序。

例外

keyvalue 参数为 null

slidingExpiration 参数设置为小于 TimeSpan.Zero 或大于一年的等效值。

为要添加到 Cache 中的项设置 absoluteExpirationslidingExpiration 参数。

示例

以下示例演示如何在将项插入应用程序的 Cache 对象时为其分配高优先级。

注意

有关如何将此方法用于 CacheItemRemovedCallback 委托的详细信息,请参阅 如何:在从缓存中删除项时通知应用程序

Cache.Insert("DSN", connectionString, null, DateTime.Now.AddMinutes(2), TimeSpan.Zero, CacheItemPriority.High, onRemove);

Cache.Insert("DSN", connectionString, Nothing, DateTime.Now.AddMinutes(2), TimeSpan.Zero, CacheItemPriority.High, onRemove)

注解

此方法将使用相同的参数覆盖现有 Cachekey

不能同时 absoluteExpiration 设置 和 slidingExpiration 参数。 如果希望缓存项在特定时间过期,请将 参数设置为 absoluteExpiration 特定时间,并将 slidingExpiration 参数设置为 NoSlidingExpiration

如果希望缓存项在上次访问该项后经过一定时间后过期,请将 参数设置为 slidingExpiration 过期间隔,并将 absoluteExpiration 参数设置为 NoAbsoluteExpiration

另请参阅

适用于

Insert(String, Object, CacheDependency, DateTime, TimeSpan, CacheItemUpdateCallback)

将对象与依赖项、到期策略以及可用于在从缓存中移除项之前通知应用程序的委托一起插入到 Cache 对象中。

public:
 void Insert(System::String ^ key, System::Object ^ value, System::Web::Caching::CacheDependency ^ dependencies, DateTime absoluteExpiration, TimeSpan slidingExpiration, System::Web::Caching::CacheItemUpdateCallback ^ onUpdateCallback);
public void Insert (string key, object value, System.Web.Caching.CacheDependency dependencies, DateTime absoluteExpiration, TimeSpan slidingExpiration, System.Web.Caching.CacheItemUpdateCallback onUpdateCallback);
member this.Insert : string * obj * System.Web.Caching.CacheDependency * DateTime * TimeSpan * System.Web.Caching.CacheItemUpdateCallback -> unit
Public Sub Insert (key As String, value As Object, dependencies As CacheDependency, absoluteExpiration As DateTime, slidingExpiration As TimeSpan, onUpdateCallback As CacheItemUpdateCallback)

参数

key
String

用于引用对象的缓存键。

value
Object

要插入到缓存中的对象。

dependencies
CacheDependency

该项的文件依赖项或缓存键依赖项。 当任何依赖项更改时,该对象即无效,并从缓存中移除。 如果没有依赖项,则此参数包含 null

absoluteExpiration
DateTime

所插入对象将到期并被从缓存中移除的时间。 要避免可能的本地时间问题(例如从标准时间改为夏时制),请使用 UtcNow 而不是 Now 作为此参数值。 如果使用绝对到期,则 slidingExpiration 参数必须设置为 NoSlidingExpiration

slidingExpiration
TimeSpan

缓存对象的上次访问时间和对象的到期时间之间的时间间隔。 如果此值为 20 分钟的等效值,此对象将过期并将在上次访问后 20 分钟从缓存中删除。 如果使用可调到期,则 absoluteExpiration 参数必须设置为 NoAbsoluteExpiration

onUpdateCallback
CacheItemUpdateCallback

从缓存中移除对象之前将调用的委托。 可以使用它来更新缓存项并确保缓存项不会从缓存中移除。

例外

keyvalueonUpdateCallback 参数为 null

slidingExpiration 参数设置为小于 TimeSpan.Zero 或大于一年的等效值。

为要添加到 Cache 中的项设置 absoluteExpirationslidingExpiration 参数。

- 或 -

dependencies 参数为 nullabsoluteExpiration 参数设置为 NoAbsoluteExpiration 并且 slidingExpiration 参数设置为 NoSlidingExpiration

注解

使用 Insert 方法可以在缓存中插入新项,并提供在从缓存中删除项之前调用的委托。 在委托中,可以更新缓存的项,从而防止它从缓存中删除。

此方法将使用相同的参数覆盖现有 Cachekey

不能同时 absoluteExpiration 设置 和 slidingExpiration 参数。 如果希望缓存项在特定时间过期,请将 参数设置为 absoluteExpiration 特定时间,并将 slidingExpiration 参数设置为 NoSlidingExpiration

如果希望缓存项在上次访问该项后的一段时间后过期,请将 参数设置为 slidingExpiration 过期间隔,并将 参数设置为 absoluteExpirationNoAbsoluteExpiration

另请参阅

适用于

Insert(String, Object, CacheDependency)

Cache 中插入具有文件依赖项或键依赖项的对象。

public:
 void Insert(System::String ^ key, System::Object ^ value, System::Web::Caching::CacheDependency ^ dependencies);
public void Insert (string key, object value, System.Web.Caching.CacheDependency dependencies);
member this.Insert : string * obj * System.Web.Caching.CacheDependency -> unit
Public Sub Insert (key As String, value As Object, dependencies As CacheDependency)

参数

key
String

用于标识该项的缓存键。

value
Object

要插入缓存中的对象。

dependencies
CacheDependency

所插入对象的文件依赖项或缓存键依赖项。 当任何依赖项更改时,该对象即无效,并从缓存中移除。 如果没有依赖项,则此参数包含 null

例外

keyvalue 参数为 null

示例

以下示例演示如何使用 XML 配置文件上的缓存依赖项将项插入应用程序的缓存中。

Cache.Insert("DSN", connectionString, new CacheDependency(Server.MapPath("myconfig.xml")));

Cache.Insert("DSN", connectionString, New CacheDependency(Server.MapPath("myconfig.xml")))

注解

此方法将覆盖其键与 参数匹配 key 的现有缓存项。 使用 方法的 Insert 此重载添加到缓存中的 对象插入优先级 Default为 ,滑动过期值为 NoSlidingExpiration,绝对过期值为 NoAbsoluteExpiration

另请参阅

适用于

Insert(String, Object)

Cache 对象插入项,该项带有一个缓存键引用其位置,并使用 CacheItemPriority 枚举提供的默认值。

public:
 void Insert(System::String ^ key, System::Object ^ value);
public void Insert (string key, object value);
member this.Insert : string * obj -> unit
Public Sub Insert (key As String, value As Object)

参数

key
String

用于引用该项的缓存键。

value
Object

要插入缓存中的对象。

例外

keyvalue 参数为 null

示例

以下示例演示如何将项插入应用程序的缓存中。

Cache.Insert("DSN", connectionString);

Cache.Insert("DSN", connectionString)

注解

此方法将覆盖其键与 参数匹配 key 的现有缓存项。 使用 方法的 Insert 此重载添加到缓存中的 对象插入时,没有文件或缓存依赖项,优先级 Default为 ,滑动过期值为 NoSlidingExpiration,绝对过期值为 NoAbsoluteExpiration

另请参阅

适用于

Insert(String, Object, CacheDependency, DateTime, TimeSpan)

Cache 中插入具有依赖项和到期策略的对象。

public:
 void Insert(System::String ^ key, System::Object ^ value, System::Web::Caching::CacheDependency ^ dependencies, DateTime absoluteExpiration, TimeSpan slidingExpiration);
public void Insert (string key, object value, System.Web.Caching.CacheDependency dependencies, DateTime absoluteExpiration, TimeSpan slidingExpiration);
member this.Insert : string * obj * System.Web.Caching.CacheDependency * DateTime * TimeSpan -> unit
Public Sub Insert (key As String, value As Object, dependencies As CacheDependency, absoluteExpiration As DateTime, slidingExpiration As TimeSpan)

参数

key
String

用于引用该对象的缓存键。

value
Object

要插入缓存中的对象。

dependencies
CacheDependency

所插入对象的文件依赖项或缓存键依赖项。 当任何依赖项更改时,该对象即无效,并从缓存中移除。 如果没有依赖项,则此参数包含 null

absoluteExpiration
DateTime

所插入对象将到期并被从缓存中移除的时间。 要避免可能的本地时间问题(例如从标准时间改为夏时制),请使用 UtcNow 而不是 Now 作为此参数值。 如果使用绝对到期,则 slidingExpiration 参数必须为 NoSlidingExpiration

slidingExpiration
TimeSpan

上次访问插入对象的时间与对象过期时间之间的间隔。 如果此值为 20 分钟的等效值,此对象将过期并将在上次访问后 20 分钟从缓存中删除。 如果使用可调到期,则 absoluteExpiration 参数必须为 NoAbsoluteExpiration

例外

keyvalue 参数为 null

slidingExpiration 参数设置为小于 TimeSpan.Zero 或大于一年的等效值。

为要添加到 Cache 中的项设置 absoluteExpirationslidingExpiration 参数。

示例

以下示例演示如何在绝对过期的情况下将项插入应用程序的缓存中。

注意

由于此方法的 Insert 这种形式支持缓存依赖项,因此如果项没有依赖项,则必须在以逗号分隔的参数列表中,在 Visual Basic) 中将参数声明 dependencynull (Nothing

Cache.Insert("DSN", connectionString, null, DateTime.Now.AddMinutes(2), Cache.NoSlidingExpiration);
Cache.Insert("DSN", connectionString, Nothing, DateTime.Now.AddMinutes(2), Cache.NoSlidingExpiration)

以下示例演示如何使用滑动过期时间将项插入缓存中。

Cache.Insert("DSN", connectionString, null, Cache.NoAbsoluteExpiration, TimeSpan.FromSeconds(10));
Cache.Insert("DSN", connectionString, Nothing, Cache.NoAbsoluteExpiration, TimeSpan.FromSeconds(10))

注解

此方法将使用相同的参数覆盖现有 Cachekey

如果 参数 slidingExpiration 设置为 NoSlidingExpiration,则禁用滑动过期。 如果将 参数设置为slidingExpiration大于 ,则absoluteExpiration参数设置为 Now 加上 参数中包含的slidingExpirationZero值。 如果在参数指定的 absoluteExpiration 时间之前从缓存请求该项,则该项将再次放置在缓存中,并将 absoluteExpiration 再次设置为 DateTime.Now 加上 参数中包含的 slidingExpiration 值。 如果未在 参数的 absoluteExpiration 日期之前从缓存请求该项,则会从缓存中删除该项。 使用插入方法的此重载添加到缓存中的项的插入优先级 Default为 。

另请参阅

适用于