您的位置:首页 > 移动开发

App_Code中的类如何访问Cache?

2008-05-19 11:01 141 查看
App_Code中的类如何访问Cache?
一位学生来邮件问以下问题:

金老师:
您好,我在学习中遇到一个奇怪的问题。自己这么也想不明白。身边也没有人可以请教。
只好麻烦您了,希望得到解答。

在.aspx.cs中存在一个Cache对象,我在.aspx.cs中使用Cache.Insert("key",object)方法装
载一个解析后的xml对象放入Cache中,这样做一切正常。
可是后来我想在单独在App_Code文件夹里单独建一个.cs文件做同样的事情,却发现在这里不
能直接调用Cache对象对象了,
于是我using System.Web.Caching后自己定义了一个Cache对象,然后用这个对象来Insert;

mychche = new Cache();
if (mychche["xmlen"] == null)//在这里报NullReferenceException
{}
真的这么也搞不明白这里为什么会NullReferenceException,mychche明明已经初始化了,myc
hche["xmlen"]我在前面也已经Insert(key,object)了,
希望得到您的帮助
谢谢了

============================

回答:

你这样用,在App_code中:
public class MyUseCache
{
public MyUseCache()
{
//
//TODO: 在此处添加构造函数逻辑
//
}

public void InsertCache(HttpContext context)
{
context.Cache.Insert("cacheKey", "hello2");
}
}

在ASP.NET网页中:

public partial class UseCache : System.Web.UI.Page
{
private MyUseCache obj = new MyUseCache();
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
obj.InsertCache(Context);
Response.Write("Data is Added to Cache");
}
else
Response.Write(Cache["cacheKey"]);
}
}
你问题的关键在于:
App_Code中的类是全局类型,所有页面都可以创建它的实例,而每个页面都生存于特定HTTP请求上下文中。
因此,通过将特定的上下文对象传送给它,就能访问到Cached对象。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐