如何更改运行时应用程序设置

时间:2009-02-13 14:53:48

标签: c# .net settings.settings

我正在尝试在运行时更改应用程序设置文件的一个键,但它不起作用。

我这样做:

ConfigurationSettings.AppSettings["XPTO"] = "HELLO";

它似乎只会在内存中发生变化,而不会在文件中发生变化。

有谁知道怎么做?

感谢。

3 个答案:

答案 0 :(得分:10)

看看我的overview of .NET settings files ...简而言之,我认为你想要一个用户范围的设置。它会表现得更像你期望的。

  

修改:如果您使用的是settings designer in Visual Studio,则只需将“范围”更改为“用户”即可。如果没有,您应该能够以编程方式执行等效操作。

答案 1 :(得分:5)

AppSettings文件不是可写的。它旨在存储在运行时不会更改但可能随时间更改的配置,即:DB连接字符串,Web服务URL等。

因此,虽然可以实际更新文件,但您应该重新评估该值是否应存储在那里。

答案 2 :(得分:5)

假设您的应用对该文件具有写入权限...



    Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);  // the config that applies to all users
    AppSettingsSection appSettings = config.AppSettings;

    if (appSettings.IsReadOnly() == false)
    {
        appSettings("Key").Value = "new value";

        config.Save();
    }

我忽略了所有可能抛出的异常......