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

rpf*_*rpf 4 .net c# settings.settings

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

我这样做:

ConfigurationSettings.AppSettings["XPTO"] = "HELLO";
Run Code Online (Sandbox Code Playgroud)

它似乎只改变了内存,而不是文件.

有谁知道怎么做?

谢谢.

el2*_*ot2 10

看看我对.NET设置文件的概述 ......总之,我认为你想要一个用户范围的设置.它会表现得更像你期望的.

编辑:如果您在Visual Studio中使用设置设计器,则只需将"范围"更改为"用户".如果没有,您应该能够以编程方式执行等效操作.

  • 请注意,更改设置和保存时,不会在bin文件夹中更改设置,而是在[userfolder]\Local Settings\Application Data \\ [company name] \\ [application] .exe [hash string]中更改\\ [版]\user.config (2认同)

bre*_*dan 5

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

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


Joe*_*Joe 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();
    }
Run Code Online (Sandbox Code Playgroud)

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

  • 添加System.Configuration作为参考. (2认同)