我的正常程序basicly從main()和第一個語句開始總是:如何緩存我的靜態變量在asp.net
Main()
{
AppSettings.Initialize();
//etc.
}
在asp.net程序,我想使用同一類,但沒有一個main(),所以我用在Global.asax
Application_BeginRequest()
{
AppSettings.Initialize();
//etc.
}
Application_Start()
{
AppSettings.Initialize();
//etc.
}
這樣我可以繼續使用像AppGlobal.ID全局靜態變量,等我用相同的類和助手班WP7,這一切都工作正常,我不關心的 APPLICAT的初始啓動AppGlobal中的離子變量,AppSettings需要大約2秒鐘的時間進行設置。
在asp.net,因爲初始化/設置重複與每一個頁面請求不以這種方式工作。我想緩存 的AppGlobal類和AppSettings的類,但怎麼樣?
這個話題的額外的編輯更好地說明這個問題:
因爲只有第一頁,我可以在頁面中使用的代碼AppGlobal.Name變量,我說這也是對的Application_BeginRequest。
public class AppSettings
{
//
public static void Initialize()
{
}
static AppSettings()
{
AppGlobal.DeveloperMode = Convert.ToBoolean(AppConfigValue("DeveloperMode,False"));
AppGlobal.DebugLevel = Convert.ToInt32(AppConfigValue("DebugLevel,1"));
AppGlobal.FilesFolder = AppConfigValue("FilesFolder,Files");
AppGlobal.LogFilesFolder = AppConfigValue("LogFilesFolder,LogFiles");
AppGlobal.CompanyName = AppConfigValue("CompanyName");
AppGlobal.OwnerName = AppConfigValue("OwnerName");
AppGlobal.ApplicationID = "";
AppGlobal.Initialize();
}
}
public class AppGlobal
{
public static bool DeveloperMode;
public static int DebugLevel = 0;
public static string ApplicationName = "";
private static bool _initialized;
public static void Initialize()
{
}
AppGlobal()
{
//Initialize application (check license, setup folder names, get settings)
//This takes a few seconds to create
}
}
public class Log
{
public static string FileName;
public static int DebugLevel = 0;
public static bool Initialized = false;
static Log()
{
FileName = AppGlobal.ApplicationName;
}
//etc...
}
的Application_Start應出現一次(應用程序重新啓動後),而不是每個頁面請求。我會檢查以確保您的應用程序在每次請求後都不會超時/重置。 –
'Application_Start'應該可以工作。 Application_Start事件僅在應用程序啓動時第一次觸發,而不是每個Session_Start,並且對於每個請求都更少。編輯:凱爾也較快;) –