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。
适用于
另请参阅
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈