Skip to content

Instantly share code, notes, and snippets.

@arbing
Created September 28, 2017 15:00
Show Gist options
  • Save arbing/53941081255fea3627995aa2a352aa86 to your computer and use it in GitHub Desktop.
Save arbing/53941081255fea3627995aa2a352aa86 to your computer and use it in GitHub Desktop.
Modify App.Config At Run Time
using System;
using System.Configuration;
using System.Diagnostics;
namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
var configFile = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
configFile.AppSettings.Settings.Add("key1", "value1");
configFile.Save(ConfigurationSaveMode.Modified);
ConfigurationManager.RefreshSection(configFile.AppSettings.SectionInformation.Name);
Debug.Assert(ConfigurationManager.AppSettings["key1"] == "value1");
configFile.AppSettings.Settings["key1"].Value = "value2";
configFile.Save(ConfigurationSaveMode.Modified);
ConfigurationManager.RefreshSection(configFile.AppSettings.SectionInformation.Name);
Debug.Assert(ConfigurationManager.AppSettings["key1"] == "value2");
configFile.ConnectionStrings.ConnectionStrings.Add(new ConnectionStringSettings("Conn1", "ConnectionString1"));
configFile.Save(ConfigurationSaveMode.Modified);
ConfigurationManager.RefreshSection(configFile.ConnectionStrings.SectionInformation.Name);
Debug.Assert(ConfigurationManager.ConnectionStrings["Conn1"].ConnectionString == "ConnectionString1");
configFile.ConnectionStrings.ConnectionStrings["Conn1"].ConnectionString = "ConnectionString2";
configFile.Save(ConfigurationSaveMode.Modified);
ConfigurationManager.RefreshSection(configFile.ConnectionStrings.SectionInformation.Name);
Debug.Assert(ConfigurationManager.ConnectionStrings["Conn1"].ConnectionString == "ConnectionString2");
Console.ReadLine();
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment