6

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

我这样做:

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

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

有谁知道该怎么做?

谢谢。

4

3 回答 3

11

看看我对 .NET 设置文件的概述...简而言之,我认为您需要一个用户范围的设置。它将表现得更像您的预期。

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

于 2009-02-13T15:32:52.863 回答
6

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



    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();
    }

我忽略了所有可能引发的异常......

于 2009-02-13T15:10:29.000 回答
5

AppSettings 文件并非设计为可写的。它旨在存储在运行时不会更改但可能随时间更改的配置,即:数据库连接字符串、Web 服务 URL 等。

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

于 2009-02-13T15:06:47.200 回答