使用设置DefaultValue而不事先知道其类型

时间:2013-12-24 13:00:51

标签: c# .net winforms application-settings

简短版

Settings settings = new Settings();
settings["name1"] = Settings.Default.Properties["name1"].DefaultValue;

失败。似乎DefaultValue始终只是string

长版

我正在尝试创建一个应用程序“重置设置”按钮,但我不能使用内置的Reset方法,因为我不想在用户确定之前提交它。所以我试图使用以下代码“克隆”设置:

Settings settings = new Settings();
foreach (SettingsProperty p in Settings.Default.Properties)
    settings[p.Name] = Settings.Default.Properties[p.Name].DefaultValue;
return settings;

但是我得到了“设置属性'Setting1'是不兼容的类型。”错误。 虽然当我使用这段代码做一个简单的克隆时:

Settings settings = new Settings();
foreach (SettingsProperty p in input.Properties)
    settings[p.Name] = input[p.Name];//Notice the absence of "Properties" after "input".
return settings;

它工作正常。

那么如何“克隆”默认的Settings

0 个答案:

没有答案