在Web項目訪問公共靜態變量在Global.asax.cs中遇到了問題,我已經定義在的global.asax.cs公共靜態變量(店),需要在整個可訪問應用程序。使用HttpContext.Current(C#)
public class Global : HttpApplication
{
public static UserDataStore Store;
void Application_Start(object sender, EventArgs e)
{
Store = new UserDataStore();
Store.CurrentUsers = new Hashtable();
}
void Session_Start(object sender, EventArgs e)
{
if (!Store.UserExists(HttpContext.Current.Session.SessionID))
Store.AddUser(HttpContext.Current.Session.SessionID, "StubUser");
}
}
我需要訪問它不能引用Web項目的另一個項目(和它的全局對象),因爲它會導致循環引用。
我的工作,圍繞爲是試圖使用HttpApplication對象檢索商店:
UserDataStore udStore = (UserDataStore) HttpContext.Current.Application["Store"];
這將編譯,但返回一個空對象。
我已經走了谷歌盲試圖找到這樣的其他例子,但大多數的什麼我發現信奉的2種方法之一:
- 使用應用程序(「」)的變量,這是子 - 最優,並根據本文用於傳統的ASP兼容性:http://support.microsoft.com/kb/312607
- 通過Web項目的全球一流的,這是不是在我們的當前設置的選項訪問。
這似乎應該是可能的,所以希望我失去了一些愚蠢的事。
任何幫助,你可以提供將不勝感激。謝謝。
不宜應用[ 「」]在該範圍是相同的HttpContext.Current.Application?你在哪裏分配?即:HttpContext.Current.Application [「Store」] = Store。 – LouD