mic*_*ael 12 c# settings settings.settings
我有以下内容:
using CommonSettings = MyProject.Commons.Settings;
public class Foo
{
public static void DoSomething(string str)
{
//How do I make sure that the setting exists first?
object setting = CommonSettings.Default[str];
DoSomethingElse(setting);
}
}
Run Code Online (Sandbox Code Playgroud)
sal*_*e55 24
如果您正在使用a SettingsPropertyCollection,则必须循环并检查自己存在哪些设置,因为它没有任何Contains方法.
private bool DoesSettingExist(string settingName)
{
return Properties.Settings.Default.Properties.Cast<SettingsProperty>().Any(prop => prop.Name == settingName);
}
Run Code Online (Sandbox Code Playgroud)
根据类型CommomSettings.Default,简单的空检查应该没问题:
if(setting != null)
DoSomethingElse(setting);
Run Code Online (Sandbox Code Playgroud)
如果要在尝试检索设置之前检查,则需要发布CommonSettings.Default类型.它看起来像一个字典,所以你可以逃脱:
if(CommonSettings.Default.ContainsKey(str))
{
DoSomethingElse(CommonSettings.Default[str]);
}
Run Code Online (Sandbox Code Playgroud)
小智 6
try
{
var x = Settings.Default[bonusMalusTypeKey]);
}
catch (SettingsPropertyNotFoundException ex)
{
// Ignore this exception (return default value that was set)
}
Run Code Online (Sandbox Code Playgroud)
小智 5
这是你如何处理它:
if(CommonSettings.Default.Properties[str] != null)
{
//Hooray, we found it!
}
else
{
//This is a 'no go'
}
Run Code Online (Sandbox Code Playgroud)