在当前没有可用的HttpContext时访问HttpApplicationState

本文关键字:HttpContext 访问 HttpApplicationState | 更新日期: 2023-09-27 18:07:14

通常,当我们需要引用当前应用程序状态时,我们会使用:

HttpContext.Current.Appliction

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

例如"Session_End事件"。虽然我可以在Session_End事件处理程序中使用Application属性,但是如果处理程序调用库方法并且在库代码中需要HttpApplicationState对象怎么办?我不喜欢在…周围传递一个"application"参数

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

是否有任何方法可以直接访问实例(类似于HttpContext.Current.Application方法),或者我必须选择上述不太干净的方法之一?

在当前没有可用的HttpContext时访问HttpApplicationState

我将使用HttpRuntime.Cache而不是应用程序状态对象。HttpRuntime.Cache可以在任何地方使用