在一个控制台应用程序项目中,我尝试将值写入app.config文件并永久保存,但只能保存在内存中。我尝试了写入app.config文件的值中的所有解决方案,但都不适用于我。
你有什么想法可以使更改永久生效吗?
app.config文件:
你有什么想法可以使更改永久生效吗?
app.config文件:
<appSettings>
<add key="test" value="123456" />
</appSettings>
只有两个方法用于将值保存到内存的类:
public static class ConfigurationHelper
{
public static void SetSetting(string key, string value)
{
Configuration configuration = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
configuration.AppSettings.Settings[key].Value = value;
configuration.Save(ConfigurationSaveMode.Modified);
ConfigurationManager.RefreshSection("appSettings");
}
public static void SetSetting2(string key, string value)
{
Configuration configuration = ConfigurationManager.
OpenExeConfiguration(Assembly.GetExecutingAssembly().Location);
configuration.AppSettings.Settings[key].Value = value;
configuration.Save();
ConfigurationManager.RefreshSection("appSettings");
}
}
简单的测试,可以输出更改内容,但是当重新构建项目或在记事本中打开app.config时,更改内容不会被保存:
[Test]
public void FirstTest()
{
Console.WriteLine("Value before: " + ConfigurationHelper.Get<string>("test"));
ConfigurationHelper.SetSetting2("test", "NewValue");
Console.WriteLine("Value after: " + ConfigurationHelper.Get<string>("test"));
}