C#检查启动时的Settings.Default

时间:2017-02-02 13:33:15

标签: settings app-startup

在我的应用程序启动时,我需要确保用户设置完成后才允许用户选择"运行"按钮启动功能线程。我有一个Init.cs类,它运行各种检查以确保正确设置环境以防止在运行时发生常见错误。大多数这些检查都可以正常工作,但以下情况除外:

       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值为空):

  

"检查配置"

//我在这里找到一个空白的电子邮件'输入会去(这是正确的,因为我已将其留空以便进行测试)

  

//说bool nullVal为false(这应该是真的)

我的设置是emtpy。根据我的测试响应,该方法被正确调用,settings.default值为空,但它不会触发:

if(Settings.Default["Email"] == null)

如果我更新了配置设置并在应用程序启动后没有输入任何内容,请点击我的“运行”按钮,再次运行这些检查,它们运行正常。他们只是不在创业公司工作。它就好像那里有东西(我假设' / 0'?)

我发现有关stackoverflow的建议说我正在做的事情。有没有其他方法来检查设置是否为空?对不起,如果我的问题很混乱。

1 个答案:

答案 0 :(得分:0)

“设置”中字符串的默认值为空字符串,不为空。 尝试将条件更改为以下内容:

git clone mydir newdir
# see how much disk the new '.git/' dir takes

而不是:

if(string.IsNullOrEmpty(Settings.Default["Email"])