非静态字段、方法或属性需要对象引用

5

我想使用Caching.Cache(...)方法,如下所示:

Cache.Insert("Interview Questions", datatable, sqlcachedep)

或者

System.Web.Caching.Cache.Insert("Reading List", datatable, sqlcachedep);

变量没有问题,但无论哪种情况下我都会收到以下错误消息:

错误 1 - 非静态字段、方法或属性“System.Web.Caching.Cache.Insert(string, object, System.Web.Caching.CacheDependency)”需要一个对象引用

如何修复这个问题?

谢谢。


除了不将其称为静态方法之外,还有什么问题吗? - Michael Myers
实际上,这两个参数对象是私有的。将它们设为公共的就消除了错误信息。 - GurdeepS
3个回答

17

它说的是正确的。您应该尝试类似以下的内容:

HttpContext.Current.Cache.Insert(...);

Cache.Insert不是一个静态方法(文档中的方法图标旁边有一个“S”表示静态方法)。您需要一个实例才能调用Insert方法。HttpContext.Current.Cache返回与当前应用程序相关联的Cache对象。


1

你需要做的是

Page.Cache.Insert()

(我假设你在谈论ASP.Net)。你正在调用Cache作为类,而不是它的实例。

实际上,这两个参数对象是私有的。将它们设为公共的就消除了错误信息。 - GurdeepS

1

尝试这个(基于记忆):

HttpApplication.Context.Cache.Insert("Reading List", datatable, sqlcachedep);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接