A volte è necessario modificare la stringa di connessione memorizzata nell'app.config o nel web.config di un'applicazione a runtime.
Ecco un metodo per farlo senza dover scrivere il file e senza riavviare il processo.
FieldInfo fi = typeof(ConfigurationElement).GetField("_bReadOnly", BindingFlags.Instance | BindingFlags.NonPublic);
if (fi != null)
{
fi.SetValue(ConfigurationManager.ConnectionStrings[0], false);
ConfigurationManager.ConnectionStrings[0].ConnectionString = "nuova connection string";
fi.SetValue(ConfigurationManager.ConnectionStrings[0], true);
}