背景: .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);
}
结果是:
无法插入到缓存中,异常: System.NullReferenceException: 对象引用未设置为对象的实例。 at System.Web.Caching.Cache.Insert(String key, Object value) at MyClass.RunSnippet()
显然,在这里我做错了什么。有任何想法吗?
更新:+1给大多数回答,通过静态方法获取缓存是正确的用法,即HttpRuntime.Cache
和HttpContext.Current.Cache
。谢谢大家!