修改自定义app.config配置部分并保存

我正在使用.NET Framework 4.6.1开发一个C#WPF MVVM应用程序,我在App.config中有一个自定义部分:

  

我想从我的应用程序修改PrinterSpeedCameraSpeed 。 我试过这段代码:

 static void AddUpdateAppSettings(string key, string value) { try { var configFile = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); var settings = configFile.AppSettings.Settings; if (settings[key] == null) { settings.Add(key, value); } else { settings[key].Value = value; } configFile.Save(ConfigurationSaveMode.Modified); ConfigurationManager.RefreshSection(configFile.AppSettings.SectionInformation.Name); } catch (ConfigurationErrorsException) { Console.WriteLine("Error writing app settings"); } } 

但它不起作用,因为我没有修改AppSettings部分。

我该如何修改这些值?

System.Configuration.NameValueSectionHandler很难使用。 您可以使用System.Configuration.AppSettingsSection替换它而不触及任何其他内容:

   

然后更改您的方法如下:

 static void AddUpdateAppSettings(string key, string value) { try { var configFile = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); var settings = ((AppSettingsSection) configFile.GetSection("SpeedSection")).Settings; if (settings[key] == null) { settings.Add(key, value); } else { settings[key].Value = value; } configFile.Save(ConfigurationSaveMode.Modified); ConfigurationManager.RefreshSection(configFile.AppSettings.SectionInformation.Name); } catch (ConfigurationErrorsException) { Console.WriteLine("Error writing app settings"); } } 

您应该使用ConfigurationSection类。 本教程可以提供帮助: https : //msdn.microsoft.com/en-us/library/2tw134k3.aspx