ASP.NET自定义输出缓存提供程序(4)
/// <param name="utcExpiry">过期时间</param>
public override void Set(string key, object entry,
DateTime utcExpiry)
{
string path =
String.Format("{0}{1}.binary", cachePath, key);
FileStream fs = new FileStream(
path, FileMode.Create, FileAccess.Write);
BinaryFormatter formatter = new BinaryFormatter();
formatter.Serialize(fs, entry);
fs.Close();
cacheExpireList.TryAdd(key, utcExpiry.ToLocalTime());
}
}
}
在MyOutputCacheProvider类中,我们重写了OutputCacheProvider类的Add、Get、Remove与Set方法,并将页输出缓存到“C:\\Cache\\”文件夹里。
定义好MyOutputCacheProvider类之后,你可以通过使用OutputCache元素的新的providers节在Web.config文件中配置提供程序,如下面的示例所示:
<caching>
<outputCache defaultProvider="AspNetInternalProvider">
<providers>
<add name="MyOutputCacheProvider"
type="_19_1.MyOutputCacheProvider,19-1"/>
</providers>
</outputCache>
</caching>
默认情况下,在ASP.NET 4中所有的HTTP响应、生成的网页以及控件都使用内存输出缓存,其中defaultProvider属性被默认设置为AspNetInternalProvider。当然,你可以更改Web应用程序中所使用的默认的输出缓存提供程序,这是通过为defaultProvider指定一个不同的提供程序名称实现的。如下面的代码所示:
<caching>
<outputCache defaultProvider="MyOutputCacheProvider">
<providers>
<add name="MyOutputCacheProvider"
type="_19_1.MyOutputCacheProvider,19-1"/>
</providers>
</outputCache>
</caching>
此外,还可以针对每个控件和每个请求选择不同的输出缓存提供程序。为不同的Web用户控件选择不同的输出缓存提供程序的最简单的方法就是在用户控件的指令中以声明方式使用新的ProviderName属性。
下面,我们将在MyOutputCacheProviderUserControl用户控件里定义该输出缓存提供程序,如下面的代码所示:
<%@ Control Language="C#" AutoEventWireup="true"
CodeBehind="MyOutputCacheProviderUserControl.ascx.cs"
相关新闻>>
- 发表评论
-
- 最新评论 更多>>