我们不应该在WinForms应用程序中使用System.Web.Caching.Cache类吗?

时间:2009-04-27 14:13:10

标签: .net winforms caching

我见过几篇文章/博客文章,主张在不适用于Web的应用程序中使用System.Web.Caching.Cache,但MSDN documentation非常明确地指出

  

Cache类不适用于ASP.NET应用程序之外。它的设计和测试用于ASP.NET,以便为Web应用程序提供缓存。在其他类型的应用程序中,例如控制台应用程序或Windows窗体应用程序,ASP.NET缓存可能无法正常工作。

文档是错误的,还是我们真的不应该使用这个类?如果是后者,会出现什么问题?我们的平台是Winforms / .NET 3.5。

3 个答案:

答案 0 :(得分:6)

如果应用程序不是ASP.NET应用程序,则无法自动删除过期或未使用的Cache对象。因此,如果在ASP.NET外部使用Cache对象,则不会释放为Cache对象保留的系统内存。您无法手动调用内部ASP.NET方法来清理缓存,因为这些方法被标记为内部并供内部使用。因此,您决定在外部应用程序中使用它需要您自担风险。 System.Web.Caching.Cache object

Scott Hanselman有一篇article帖子了解更多详情

答案 1 :(得分:1)

你真的不应该在ASP.NET之外使用它。这是关于其他替代方案的好白皮书:

http://msdn.microsoft.com/en-us/library/ms978502.aspx

答案 2 :(得分:0)

文档是正确的,你不能在windows应用程序中使用asp.net缓存。

<强> Cache article