C# 在启动时检查 Settings.Default

C# check Settings.Default on startup

在我的应用程序启动时,我需要确保在允许用户使用 select "Run" 按钮启动功能线程之前完成用户设置。我有一个 Init.cs class,其中 运行 进行各种检查以确保环境设置正确,以防止在 运行ning 上发生常见错误。大多数检查工作正常,但以下情况除外:

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

"Checking Config"

//我在 'email' 条目所在的位置出现空白(这是正确的,因为我故意将其留空以进行测试)

False

//说bool nullVal是false(这个应该说是true)

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

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

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

我在 Whosebug 上找到了关于做我正在做的事情的建议。还有另一种方法可以检查设置是否为空吗?对不起,如果我的问题令人困惑。

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

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

而不是:

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