访问应用程序状态变量
本文关键字:变量 程序状态 应用 访问 | 更新日期: 2023-09-27 18:34:48
我正在浏览这里的文档:http://msdn.microsoft.com/en-us/library/ms178594%28v=vs.140%29.aspx 为了创建一个变量,该变量可以告诉程序它是否在本地环境中。
这就是我在Global.asax.cs中所拥有的:
namespace website
{
public class MvcApplication : System.Web.HttpApplication
{
...
Application["loc"] = false;
if (Request.Headers["host"].Contains("localhost"))
{
Application["loc"] = true;
}
}
}
当我尝试访问模型文件中的 ApplicationState 变量时,如下所示:
if (Application["loc"] != null)
{
bool loc = (bool)Application["loc"];
}
这正是文档中指定的,我收到一个错误:
名称应用程序在当前上下文中不存在。
我做错了什么?
Application
是在 HttpApplication
上定义的实例级属性。如果没有 HttpApplication
的实例,您将无法尝试访问它。
对当前HttpApplication
的引用可以通过静态属性HttpContext.Current
获取,这将返回一个HttpContext
对象;这可以进一步查询以获取实际HttpApplication
,
例如
var myHttpApp = HttpContext.Current.ApplicationInstance;
var appState = myHttpApp.Application;
还可以直接使用 HttpContext.Current.Application
获取对当前HttpApplicationState
对象的引用。
要修复您的代码,您可以执行以下操作:
if (HttpContext.Current.Application["loc"] != null)
{
bool loc = (bool)(HttpContext.Current.Application["loc"]);
}