System.Web.Cacheing的使用方法?愁人。。。帮忙。

chenxianping1979 2005-03-24 04:46:04
我在一工程下建立了一个类文件。如下。 但在页面的CS文件里使用却不可以。看下面的例子。
using System;
using System.Data;
using System.Web.Caching;
using NTM.CN.News.DAL;//数据库访问层;
namespace NTM.CN.News.dBLL
{
public class Article
{
public NTM.CN.News.DAL.NewsInfoOper NIO=new NewsInfoOper();
protected NTM.CN.News.DAL.NewsInfoOper ddinfo=new NewsInfoOper();
public string CacheTest()
{
DataTable abc=new DataTable();
string abv="abc";
Cache ab=new Cache();
ab.Insert("DSN",abv);
return ab["DSN"].ToString();
}
}
}

在页面的CS文件引用如下。
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using NTM.CN.News.dBLL;
using NTM.CN.News.DAL;
namespace NTM.CN.News
{
/// <summary>
/// WebForm1 的摘要说明。
/// </summary>
public class WebForm1 : System.Web.UI.Page
{
protected System.Web.UI.WebControls.DataGrid DataGrid1;
protected NTM.CN.News.dBLL.Article cc=new Article();
protected System.Web.UI.WebControls.HyperLink HyperLink1;
protected NTM.CN.News.DAL.NewsInfoOper ddinfo=new NewsInfoOper();



private void Page_Load(object sender, System.EventArgs e)
{
Response.Write(cc.CacheTest());
if(!this.IsPostBack)
{
}
}
}
}
运行结果却是出错。

未将对象引用设置到对象的实例。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.NullReferenceException: 未将对象引用设置到对象的实例。

源错误:


行 19: string abv="abc";
行 20: Cache ab=new Cache();
行 21: ab.Insert("DSN",abv);
行 22: return ab["DSN"].ToString();
行 23: }


源文件: c:\inetpub\wwwroot\webnn\cn\news\dbll\article.cs 行: 21
为什么呢?哪错了。为什是不能引用?
...全文
183 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
hubinasm 2005-05-30
  • 打赏
  • 举报
回复
问的最多的问题:在一个自定义的类中如何使用Cache?
解决办法:
1.使用HttpContext获取上下文中的CACHE
2.类里写函数传递System.Web.UI.Page参数
例子:
在自定义的类中定义如下方法:
public string CacheString()
{
if(System.Web.HttpContext.Current.Cache["MyData"] == null)
{
System.Web.HttpContext.Current.Cache.Insert("MyData","hubinasm is strong");
}
return System.Web.HttpContext.Current.Cache["MyData"].ToString();
}

public string CacheString(System.Web.UI.Page p)
{
if(p.Cache["MyData"] == null)
{
string myName = "hubinasm";
p.Cache.Insert("MyData",myName);
}
return p.Cache["MyData"].ToString();
}
则可以在*.aspx.cs文件中这样使用
你的自定义类实例.CacheString() 和 你的自定义类实例.CacheString(this)
jinzhouk 2005-04-29
  • 打赏
  • 举报
回复
我想在一个自定义的类中使用Cache,不知如何设计?感觉上只能用在WEB页面中。
chenxianping1979 2005-03-25
  • 打赏
  • 举报
回复
楼上的,你的做的是WEB后台的CS里吧?而不是在类文件里。
csdn5201 2005-03-24
  • 打赏
  • 举报
回复
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), TimeSpan.Zero, CacheItemPriority.High, onRemove);
}

62,244

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧