Output Cache 只适用于同一份asp.net网页,如果要跨网页共享某些缓存内容(如:数据连接、DataSet、DataView),就要使用缓存引擎中的缓存对象(Cache Object)。
缓存对象可以直接和缓存引擎沟通,即是提供缓存引擎的直接访问操作,并且可让多份asp.net网页共享,同时允许彼此新建、修改、删除其中的内容。对WEB应用程序而言,Cache对象是私有的(Private)而非公有(public),因此无法跨越不同的应用程序共享Cache对象的内容。
一、Cache对象的处理
Cache对象和Session、Application对象相似,分为添加和删除两种操作,前者和session对象相同(或使用insert方法),后者是通过Cache对象的Remove方法。
如果想要添加某个Cache对象,例如作者姓名,语句如下:
Cache["Author"]="allonkwok"
而要取出某个Cache对象的内容时,可借助一个变量,或直接以Response.Write方法列出,如下:
string strAuthor;
strAuthor=Cache("Author");
Response.Write[strAuthor];
strAuthor=Cache("Author");
Response.Write[strAuthor];
下面我们以一个例子示范如何循环取出Cache对象内容:
<%@ Import Namespace="System.Web.Caching.Cache"%>
<Script Language="C#" runat="server">
public void Page_Load(object sender,EventArgs e)
{
Object objCache;
string strText;
Cache["Author"]="allonkwok";
Cache["City"]="amoi";
Cache["Phone"]="05921234567";
foreach (objCache In Cache)
{
if IndexOf(objCache.Key.Substring(1,7),1)<1
{
strText &=objCache.Key&"="&Cache(objCache.Key)&"<br>";
}
}
lblShow.Text=strText;
}
</script>
<html>
<body>
<asp:Label id="lblShow" runat="server"/>
</body>
</html>
<Script Language="C#" runat="server">
public void Page_Load(object sender,EventArgs e)
{
Object objCache;
string strText;
Cache["Author"]="allonkwok";
Cache["City"]="amoi";
Cache["Phone"]="05921234567";
foreach (objCache In Cache)
{
if IndexOf(objCache.Key.Substring(1,7),1)<1
{
strText &=objCache.Key&"="&Cache(objCache.Key)&"<br>";
}
}
lblShow.Text=strText;
}
</script>
<html>
<body>
<asp:Label id="lblShow" runat="server"/>
</body>
</html>