Cache.Add 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
将指定项添加到 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
。
例外
key
或 value
参数设置为 null
。
slidingExpiration
参数设置成小于 TimeSpan.Zero
或大于一年。
为要添加到 Cache
中的项设置 absoluteExpiration
和 slidingExpiration
参数。
示例
以下示例创建一个 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。