如何在C# Winforms中将配置保存到app.config?

8

请问有没有人能给我一个使用 C# 和 WinForms 来保存 app.config 中键值对的例子?

3个回答

23

ASP.NET中:

Configuration config = WebConfigurationManager.OpenWebConfiguration(null);
AppSettingsSection app = config.AppSettings;
app.Settings.Add("x", "this is X");
config.Save(ConfigurationSaveMode.Modified);

WinForms 中:

Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
AppSettingsSection app = config.AppSettings;
app.Settings.Add("x", "this is X");
config.Save(ConfigurationSaveMode.Modified);

当我打开app.config时,它没有写入"x"和"this is x"。 - monkey_boys
2
@monkey_boys:当从VS运行例如Win Forms应用程序时,要查找的相关.config文件是:<My application>.vshost.exe.config,因此如果您在<My application>.exe.config中查找,则不会看到任何更改。 - Wout
@AshkanMobayenKhiabani 不,它会添加一个新的逗号分隔值。 - Azimuth

3

我知道你特别要求WinForms解决方案,但这可能会对其他人有所帮助。对于一个.NET 4.0的控制台应用程序,这些方法都没有对我起作用。所以我使用以下方法,它可以解决问题:

private static void UpdateSetting(string key, string value)
{
    Configuration configuration = ConfigurationManager.
        OpenExeConfiguration(Assembly.GetExecutingAssembly().Location);
    configuration.AppSettings.Settings[key].Value = value;
    configuration.Save();

    ConfigurationManager.RefreshSection("appSettings");
}

0

类似这样的内容可能是: 链接


为什么我看不到 ConfigurationManager 类? - monkey_boys
1
在 using 部分添加:using System.Configuration; - TheBoubou

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接