実行時に web.config の接続文字列を編集しようとしている場合は、WebConfigurationManagerを見てください。
接続文字列を挿入するために実行時に構成を変更しようとしているだけの場合は、うまくいきません。ConfigurationManager オブジェクト ツリーは、構成ファイルを直接反映することを目的としています。変更できると、状態が一貫しなくなります。
接続文字列を取得するために使用できる単純なファサード クラスを作成することをお勧めします。このようにして、ファサードがオンザフライ コレクションから接続文字列を返すようにするか、存在しない場合は ConfigurationManager から取得することができます。
class ConnectionStringProvider
{
Dictionary<string, System.Configuration.ConnectionStringSettings> _localStrings = new Dictionary<string, System.Configuration.ConnectionStringSettings>();
public void AddLocalConnectionString(string name, string connstring)
{
System.Configuration.ConnectionStringSettings cs = new System.Configuration.ConnectionStringSettings(name, connstring);
_localStrings.Add(name, cs);
}
public void RemoveLocalConnectionString(string name)
{
_localStrings.Remove(name);
}
public System.Configuration.ConnectionStringSettings this[string name] {
get
{
return _localStrings.ContainsKey(name) ? _localStrings[name] : System.Configuration.ConfigurationManager.ConnectionStrings[name];
}
}
}
または、常にかなり重いものにして、Enterprise Library Configuration Block のようなものを使用することもできます。