我在Global.asax中设置了各种全局参数,如下:
Application["PagePolicies"] = "~/Lab/Policies.aspx";
Application["PageShare"] = "/Share.aspx";
Application["FileSearchQueries"] = Server.MapPath("~/Resources/SearchQueries.xml");
...
我从.ascx.cs或.aspx.cs文件中访问这些变量没有问题 - 即。属于Web内容的文件。但是,我似乎无法从基本类对象(即独立的.cs文件)访问“应用程序”。我在某处读到了使用.cs文件中的细微变化,如下所示,但它在使用时总会引发异常:
String file = (String)System.Web.HttpContext.Current.Application["FileSearchQueries"];
答案 0 :(得分:7)
虽然您可以在任何类中使用HttpContext.Current
,但在调用时仍必须处理HTTP请求 - 否则就没有当前上下文。我认为这是你获得例外的原因,但发布实际例外将有助于澄清问题。
答案 1 :(得分:3)
在app之间共享你的变量,并且为了能够从独立类访问它,你可以使用类的静态变量,而不是使用HttpApplication变量。
public MyClass{
public static int sharedVar;
}
//and than you can write somwhere in app:
MyClass.sharedVar= 1;
//and in another location:
int localVar = MyClass.sharedVar;