我正在尝试在应用程序的设置文件中更改一个键,但它没有生效。
我是这样做的:
ConfigurationSettings.AppSettings["XPTO"] = "HELLO";
看起来它只在内存中更改,而不是在文件上更改。
有人知道如何做到这一点吗?
谢谢。
我正在尝试在应用程序的设置文件中更改一个键,但它没有生效。
我是这样做的:
ConfigurationSettings.AppSettings["XPTO"] = "HELLO";
看起来它只在内存中更改,而不是在文件上更改。
有人知道如何做到这一点吗?
谢谢。
请查看我的.NET设置文件概述......简而言之,我认为您需要一个用户范围内的设置。 这将更符合您的预期。
(译者注:此处保留了原文中的HTML标签)编辑:如果您正在使用Visual Studio中的设置设计器,那么只需将“Scope”更改为“User”即可。如果没有,则应该能够通过编程方式实现相同的效果。
假设您的应用程序对该文件具有写入权限...
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();
}
我忽略了可能会抛出的所有异常...
AppSettings文件不是为可写而设计的。它的设计目的是存储在运行时不会更改但随时间可能会更改的配置,例如:数据库连接字符串、Web服务URL等。
因此,虽然可能可以更新该文件,但实际上您应该重新评估是否应该将该值存储在那里。