次の静的クラスがあります:
public static class GlobalVar
{
public static string DatabaseName = "ProjectDatabase.mdf";
public static AdminClass Admin;
public static string TruePath = AppDomain.CurrentDomain.BaseDirectory;
public static string TimeStampPattern = "dd/MM/yyyy HH:mm";
static GlobalVar()
{
TruePath = TruePath.Remove(TruePath.Length - 1);
Admin = new AdminClass("Admin", "Admin");
GlobalStatus = new Dictionary<string, string>();
string Query = "SELECT * FROM global_status";
DataTable Types = MyAdoHelper.ExecuteDataTable(GlobalVar.DatabaseName, Query);
foreach (DataRow Status in Types.Rows)
{
GlobalStatus.Add(Status["title"].ToString(), Status["info"].ToString());
}
}
public static Dictionary<string, string> GlobalStatus;
public static string BasePath = HttpContext.Current.Request.ApplicationPath;
}
GlobalStatusは、サイトが返す可能性のあるカスタムエラーを受け取る辞書です。プロジェクト(Microsoft Visual Web Developer 2008)を起動すると、次のエラーが発生します。
Object reference not set to an instance of an object.
GlobalStatusから値を取得しようとしたとき(例:GlobalVar.GlobalStatus ["Page_NoAccess"])。
1分後、プロジェクトを再度起動すると、正常に実行されます。
GlobalStatusがいっぱいになるまでブラウザを強制的に待機させるなど、これを修正するにはどうすればよいですか。このクラスには、ブラウザのリクエストごとに呼び出されたくないグローバル変数が含まれているため、このクラスを1回だけ初期化する必要があります。
ありがとう