Asp.net 如何使用缓存?

Asp.net 如何使用缓存?,asp.net,.net,vb.net,caching,Asp.net,.net,Vb.net,Caching,基本上,我检索了一个数据集,并希望将其缓存在服务器内存中一个月。因此,在这个月内运行页面时,我不需要一次又一次地调用查询 我做了一些研究,认为这是缓存的方法,基本上我修改了子代码以适合我的应用程序 Public Sub RemovedCallback(k As String, v As Object, r As CacheItemRemovedReason) itemRemoved = True reason = r End Sub Function AddItemToCache

基本上,我检索了一个数据集,并希望将其缓存在服务器内存中一个月。因此,在这个月内运行页面时,我不需要一次又一次地调用查询

我做了一些研究,认为这是缓存的方法,基本上我修改了子代码以适合我的应用程序

Public Sub RemovedCallback(k As String, v As Object, r As CacheItemRemovedReason)
    itemRemoved = True
    reason = r
End Sub
Function AddItemToCache(cacheKey as String, ds as Dataset)
    itemRemoved = False

    onRemove = New CacheItemRemovedCallback(AddressOf Me.RemovedCallback)

    If (IsNothing(Cache(cacheKey))) Then
        Cache.Add(cacheKey, ds, Nothing, DateTime.Now.AddMonths(1), TimeSpan.Zero, CacheItemPriority.High, onRemove)
    End If
End Function

这段代码中有很多错误。其中一个错误是
缓存(cacheKey)
说“缓存是一种类型,不能用于表达式”?我哪里做错了?

听起来你在使用IIS缓存。首先,如果这是您的路线-如果您有可能使用缓存(如果可用)的程序集,则需要创建
缓存
程序集,在其中检查
HTTPcontext
。如果为
null
-您正在IIS之外运行,缓存将不可用。 如果您使用的是高达3.5版本的框架,那么一个好的替代方法是下载企业库缓存块。如果使用FW4.0+,则使用system.runtime.caching。这样,缓存将始终可用。还有AppFaric和一些第三方缓存实现,但这可能超出了您的范围

对于您的错误,听起来您的标识符
缓存
[您的代码没有显示如何分配它]实际上是一种类型。如果你这么做了

If Integer Is Nothing....
您需要使用的是语法

System.Web.Caching.Cache.Add...
现在,这是一个例子。所以,你能做的就是

Dim c as Cache = System.Web.Caching.Cache
c.Add(....