在没有可用的当前HttpContext的情况下访问HttpApplicationState

时间:2013-04-03 23:45:08

标签: c# asp.net web-applications asp.net-mvc-4 application-state

通常,当我们需要对当前Application状态的引用时,我们使用:

HttpContext.Current.Appliction

但有时候没有当前的HttpContext(HttpContext.Current返回null)。在这种情况下,如何获取对当前应用程序实例的引用?

示例可以在Session_End事件中。虽然我可以在Application事件处理程序中使用Session_End属性,但是如果处理程序调用库方法并且库代码中需要HttpApplicationState对象,该怎么办?我不想在...周围传递“应用程序”参数。

我也不喜欢将它保存在static字段中(如Singleton模式),我正在寻找一种直接从上下文中获取它的方法。

有没有办法直接访问实例(类似于HttpContext.Current.Application方法)或者我是否必须选择上述不那么干净的方法之一?

1 个答案:

答案 0 :(得分:2)

我使用HttpRuntime.Cache代替应用程序状态对象。 HttpRuntime.Cache可以在任何地方使用。