Cache.Add 方法

定义

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

public:
 System::Object ^ Add(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 object Add (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.Add : string * obj * System.Web.Caching.CacheDependency * DateTime * TimeSpan * System.Web.Caching.CacheItemPriority * System.Web.Caching.CacheItemRemovedCallback -> obj
Public Function Add (key As String, value As Object, dependencies As CacheDependency, absoluteExpiration As DateTime, slidingExpiration As TimeSpan, priority As CacheItemPriority, onRemoveCallback As CacheItemRemovedCallback) As Object

参数

key
String

用于引用该项的缓存键。

value
Object

要添加到缓存的项。

dependencies
CacheDependency

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

absoluteExpiration
DateTime

所添加对象将到期并被从缓存中移除的时间。 如果使用可调到期,则 absoluteExpiration 参数必须为 NoAbsoluteExpiration

slidingExpiration
TimeSpan

最后一次访问所添加对象时与该对象到期时之间的时间间隔。 如果该值等效于 20 分钟,则对象在最后一次被访问 20 分钟之后将到期并从缓存中移除。 如果使用绝对到期,则 slidingExpiration 参数必须为 NoSlidingExpiration

priority
CacheItemPriority

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

onRemoveCallback
CacheItemRemovedCallback

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

返回

如果添加的项之前存储在缓存中,则为表示该项的对象;否则为 null

例外

keyvalue 参数设置为 null

slidingExpiration 参数设置成小于 TimeSpan.Zero 或大于一年。

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

示例

以下示例创建一个 AddItemToCache 方法。 调用此方法时,它将属性 itemRemoved 设置为 false ,并将方法注册 onRemove 到委托的新实例 CacheItemRemovedCallback 。 委托的签名在 方法中使用 RemovedCallback 。 然后, 方法 AddItemToCache 检查与缓存中的键关联的 Key1 值。 如果值为 null,则 Add 方法将项置于缓存中,其键为 Key1、值 Value 1、60 秒的绝对过期时间以及高缓存优先级。 它还使用 onRemove 方法作为参数。 这允许在 RemovedCallback 从缓存中删除此项时调用 方法。

注意

有关如何使用 CacheDependency 类和 CacheItemRemovedCallback 委托的示例,请参阅 缓存应用程序数据

public void AddItemToCache(Object sender, EventArgs e) {
    itemRemoved = false;

    onRemove = new CacheItemRemovedCallback(this.RemovedCallback);

    if (Cache["Key1"] == null)
      Cache.Add("Key1", "Value 1", null, DateTime.Now.AddSeconds(60), Cache.NoSlidingExpiration, CacheItemPriority.High, onRemove);
}
Public Sub AddItemToCache(sender As Object, e As EventArgs)
    itemRemoved = false

    onRemove = New CacheItemRemovedCallback(AddressOf Me.RemovedCallback)

    If (IsNothing(Cache("Key1"))) Then
      Cache.Add("Key1", "Value 1", Nothing, DateTime.Now.AddSeconds(60), Cache.NoSlidingExpiration, CacheItemPriority.High, onRemove)
    End If
End Sub

注解

如果具有相同参数的项 key 已存储在 中,则对此方法的 Cache调用将失败。 若要使用相同的key参数覆盖现有Cache项,请使用 Insert 方法。

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

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

适用于

另请参阅