Update app.config system.net setting at runtime

后端 未结 3 579
抹茶落季
抹茶落季 2020-11-29 04:06

I need to update a setting in the system.net SectionGroup of a .Net exe app.config file at runtime. I don\'t have write access to the original config file at runtime (I am d

相关标签:
3条回答
  • 2020-11-29 04:29

    using System.Configuration;

        public void save_new_connection()
        {
    
          string ConStrng = ConfigurationManager.ConnectionStrings.ToString();
          ConnectionStringSettings conSetting = new ConnectionStringSettings();
    
          conSetting.ConnectionString="server=localho;UserId=root;password=mypass;database=night_anglecourier"; 
          conSetting.Name = "courier.Properties.Settings.night_anglecourierConnectionString";
          conSetting.ProviderName = "MySql.Data.MySqlClient";
    
          System.Configuration.Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
    
            ConnectionStringsSection conSettings = (ConnectionStringsSection)config.GetSection("connectionStrings");
            conSettings.ConnectionStrings.Remove(conSetting);
            conSettings.ConnectionStrings.Add(conSetting);
    
            config.Save(ConfigurationSaveMode.Modified);
            ConfigurationManager.RefreshSection(config.AppSettings.SectionInformation.Name);
    
    
        }
    
    0 讨论(0)
  • 2020-11-29 04:35

    I did not understand from your question if you don't have access to the app.config file because of your own design implementation or you just weren't able to save the config file, so here is a piece of code that allows you to modify and save appSettings section in the config file at runtime:

    Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
    KeyValueConfigurationCollection settings = config.AppSettings.Settings;
    
    // update SaveBeforeExit
    settings[-keyname-].Value = "newkeyvalue";
    ...
    //save the file
    config.Save(ConfigurationSaveMode.Modified);
    //relaod the section you modified
    ConfigurationManager.RefreshSection(config.AppSettings.SectionInformation.Name);
    

    P.S the code will not save the app.config file you see in the solution editor, it will pdate the "program_name.exe.config" file in the operation forlder.

    0 讨论(0)
  • 2020-11-29 04:53

    with this code i have changed the connection string in the application setting of the config file ... hope this may help u.

    string ConStrng = ConfigurationSettings.AppSettings["ConnectionString"];
                string sss = "Data Source=";
                string xxx = ";Initial Catalog=AlfalahScholarship;Integrated Security=True";
                //ConfigurationSettings.AppSetting;
                System.Configuration.Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
                //Get the appSettings section.
                AppSettingsSection appSettings = (AppSettingsSection)config.GetSection("appSettings");
                appSettings.Settings.Remove("ConnectionString");
                appSettings.Settings.Add("ConnectionString", sss + txtServerName.Text + xxx);
    
                config.Save(ConfigurationSaveMode.Modified);
                ConfigurationManager.RefreshSection(config.AppSettings.SectionInformation.Name);
    
    0 讨论(0)
提交回复
热议问题