在我的應用程序啓動時,我需要確保用戶設置完成,然後才允許用戶選擇「運行」按鈕啓動功能線程。我有一個Init.cs類,它運行各種檢查以確保環境設置正確,以防止在運行時發生常見錯誤。大多數這些檢查工作正常,除了以下內容:C#在啓動時檢查Settings.Default
static void checkConfigHealth()
{
Console.WriteLine("Checking Config");
Settings.Default["nullVal"] = false;
Console.WriteLine(Settings.Default["Email"]); //Test code
if (Settings.Default["Email"] == null)
{
Settings.Default["nullVal"] = true;
}
if (Settings.Default["SQL"] == null)
{
Settings.Default["nullVal"] = true;
}
if (Settings.Default["Server"] == null)
{
Settings.Default["nullVal"] = true;
}
if (Settings.Default["User"] == null)
{
Settings.Default["nullVal"] = true;
}
bool nullVal = Convert.ToBoolean(Settings.Default["nullVal"]);
if (nullVal)
{
Console.WriteLine("Please update the configuartion!");
}
Console.WriteLine(Settings.Default["nullVal"]); //Test code
}
它繼續,但這是基本的想法。當這個方法被調用在啓動時,我從測試代碼得到響應(假設settings.default值爲空):
「檢查配置」
//我得到了一個空白在這些地方的「電子郵件」條目會去(這是正確的,因爲我已經離開它留空的宗旨,爲測試)
假
//說布爾nullVal是假的(這應該是真的)
我的設置是emtpy。根據我的測試迴應,該方法被正確調用和settings.default值是空的,但它不會觸發:
if(Settings.Default["Email"] == null)
如果我更新的配置設置和應用程序啓動後輸入任何內容,然後點擊我的運行按鈕,這些檢查再次運行,並且它們工作正常。他們只是在啓動時不工作。它的行爲好像有什麼東西(我假設'/ 0'?)
我在stackoverflow上發現了一些建議,說明我正在做什麼。是否有另一種方法來檢查設置是否爲空?對不起,如果我的問題很混亂。
要claify:此次檢查的目的是設置「nullVal」爲「True」,如果用戶還沒有更新了一個設置(即當用戶第一次啓動程序,或者他/她更新設置並離開了一個字段時)。在主窗體中,當用戶選擇「運行」時,應用程序查找「nullVal」,如果它是「真」,則下一個線程不會啓動,而是用戶獲得更新配置的響應。 –