Scott Hanselman 说是的.
将System.Web添加到非Web项目是让人们恐慌的好方法.另一种是在C#应用程序中添加对Microsoft.VisualBasic的引用.尽管如此,两者都是合理且有用的事情要做.
MSDN 说没有.
Cache类不适用于ASP.NET应用程序之外.它的设计和测试用于ASP.NET,以便为Web应用程序提供缓存.在其他类型的应用程序中,例如控制台应用程序或Windows窗体应用程序,ASP.NET缓存可能无法正常工作.
那我该怎么想?
我意识到这个问题已经过时了,但为了帮助任何通过搜索找到这个问题的人,值得注意的是.net v4包含了针对此类场景的新通用缓存.它位于System.Runtime.Caching命名空间中:
https://msdn.microsoft.com/en-us/library/dd997357(v=vs.110).aspx
对默认缓存实例的静态引用是:MemoryCache.Default
使用HttpRuntime.Cache应该没有任何问题.它是一个复杂的内存中哈希表,在Web上下文之外非常有用.不过,这可能是一个有点代码气味的引用HttpRuntime.Cache在非HTTP相关的应用程序,因此它可以是一个好主意来包装它背后的一些ICACHE界面和使用尽可能.