使用来自用户的数据更新.config文件

时间:2014-08-13 15:30:21

标签: c# app-config appsettings

我正在尝试将一些设置保存到配置文件的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文件?

2 个答案:

答案 0 :(得分:0)

config.Save(ConfigurationSaveMode.Modified)仅在您修改exisint密钥时工作,换句话说,如果您需要在Web配置中实际添加键值,则只需调用config.Save()没有参数

答案 1 :(得分:0)

如果要添加新的配置文件密钥,需要先在设置集合中添加它:

config.AppSettings.Settings.Add("Key", "Value");

然后调用Save方法。