У меня есть следующий статический класс:Ссылка на объект Статический класс не указывает на экземпляр объекта
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"].).
Только через минуту, когда я снова запускаю проект, он работает нормально.
Как я могу исправить это, как заставить его браузера подождать, пока он не заполнит GlobalStatus. Мне нужен этот класс для инициализации только один раз, поскольку он содержит глобальные переменные, которые я не хочу отзывать каждый запрос браузера.
Благодаря
добавьте трассировку стека и код, который вы получите это исключение, в – eyossi
Если вы думаете, что TruePath или BasePath могут быть нулевыми значениями, которые вы ищете. – Grumsh
Вещь в том, что это происходит время от времени. Если я сброшу свой компьютер и запустим проект, он может работать нормально. Это случается раз в то время, поэтому воссоздание исключения может занять некоторое время. – Novak