App.Config 值修改困境
在提供的代码片段中,尝试修改 App.Config 文件中的值。然而,这种修改并没有像预期的那样持续存在。为了找出这个问题的根源,让我们深入研究所提供的代码并探讨潜在的问题。
代码段:
lang = "Russian"; private void Main_FormClosing(object sender, FormClosingEventArgs e) { System.Configuration.ConfigurationManager.AppSettings.Set("lang", lang); }
确实修改了应用程序配置文件。但是,正如响应中强调的那样,此修改仅发生在内存中,不会持久保存到物理配置文件中。
解决此问题的关键在于认识到 ConfigurationManager.AppSettings.Set("lang", lang) 仅进行临时的内存中更改。要将这些更改保留到 App.Config 文件,需要执行额外的步骤。
响应引入了专门为控制台应用程序定制的修订后的代码片段:
class Program { static void Main(string[] args) { UpdateSetting("lang", "Russian"); } private static void UpdateSetting(string key, string value) { Configuration configuration = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); configuration.AppSettings.Settings[key].Value = value; configuration.Save(); ConfigurationManager.RefreshSection("appSettings"); } }
在此代码中:
通过利用此更新的代码,对 App.Config 文件所做的值修改现在已成功保留,解决了问题并允许所需的语言设置更改。
以上是为什么 `ConfigurationManager.AppSettings.Set` 不保留 App.Config 更改?的详细内容。更多信息请关注PHP中文网其他相关文章!