我正在尝试将一些设置保存到配置文件的appSettings部分,以便我可以使用这些数据来执行程序的过程。在单击按钮时,我希望来自用户的数据保存在配置文件中。我正在使用的代码是:
private void button1_Click(object sender, EventArgs e)
{
System.Configuration.Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
config.AppSettings.Settings["key1"].Value = "value1";
config.AppSettings.Settings["key2"].Value = "value2";
config.Save(ConfigurationSaveMode.Modified);
ConfigurationManager.RefreshSection("appSettings");
}
在执行代码之前,我的app.config文件如下所示:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
</configSections>
<appSettings>
<add key="roshane" value=""/>
<add key="email" value=""/>
<add key="super" value=""/>
<add key="phone" value=""/>
</appSettings>
<connectionStrings>
<add name="AutoReportEmailerConnectionString"
connectionString="Data Source=roshane\sqlexpress;Initial Catalog=ICR_v5.0;Integrated Security=True"
providerName="System.Data.SqlClient" />
</connectionStrings>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5"/>
</startup>
</configuration>
执行代码后,programName.exe.config文件与app.config相同。有没有我遗漏的原因为什么没有将值添加到programName.exe.config文件?
答案 0 :(得分:0)
config.Save(ConfigurationSaveMode.Modified)仅在您修改exisint密钥时工作,换句话说,如果您需要在Web配置中实际添加键值,则只需调用config.Save()没有参数
答案 1 :(得分:0)
如果要添加新的配置文件密钥,需要先在设置集合中添加它:
config.AppSettings.Settings.Add("Key", "Value");
然后调用Save方法。