如何在控制台应用程序中使用 System.Web.Caching.Cache?

2023-12-22

上下文:.Net 3.5、C#
我想在我的控制台应用程序中拥有缓存机制。
我不想重新发明轮子,而是想使用System.Web.Caching.Cache(这是最终决定,我不能使用其他缓存框架,不要问为什么)。
然而,看起来像System.Web.Caching.Cache应该只在有效的 HTTP 上下文中运行。我的非常简单的代码片段如下所示:

using System;
using System.Web.Caching;
using System.Web;

Cache c = new Cache();

try
{
    c.Insert("a", 123);
}
catch (Exception ex)
{
    Console.WriteLine("cannot insert to cache, exception:");
    Console.WriteLine(ex);
}

结果是:



cannot insert to cache, exception:
System.NullReferenceException: Object reference not set to an instance of an object.
   at System.Web.Caching.Cache.Insert(String key, Object value)
   at MyClass.RunSnippet()
  

很明显,我在这里做错了什么。有任何想法吗?


Update:对大多数答案+1,通过静态方法获取缓存是正确的用法,即HttpRuntime.Cache and HttpContext.Current.Cache。谢谢你们!


Cache 构造函数的文档表明它仅供内部使用。要获取 Cache 对象,请调用 HttpRuntime.Cache 而不是通过构造函数创建实例。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在控制台应用程序中使用 System.Web.Caching.Cache? 的相关文章

随机推荐