在我的应用程序启动时,我需要确保用户设置完成,然后才允许用户选择“运行”按钮来启动功能线程。我有一个 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是假的(这应该说是真的)
我的设置是空的。根据我的测试响应,该方法被正确调用并且 settings.default 值为空,但它不会触发:
if(Settings.Default["Email"] == null)
如果我在应用程序启动后更新了配置设置并没有输入任何内容,然后点击我的运行按钮,这些检查将再次运行,并且它们工作正常。他们只是在启动时不起作用。就好像那里有东西一样(我假设'/ 0'?)
我发现关于 stackoverflow 的建议说要完全按照我正在做的事情做。有没有另一种方法来检查设置是否为空?对不起,如果我的问题令人困惑。