如何覆盖ConfigurationManager.ConnectionStrings.IsReadOnly();

时间:2012-03-15 10:28:32

标签: c# winforms app-config

我想覆盖ConfigurationManager.ConnectionStrings.IsReadOnly();

因为我得到ConnectionstringReadonly。当我尝试在运行时编辑它时

ConnectionStringSettings connectionStringSettingInstance = 
                            new ConnectionStringSettings(connectionName,
                                                         ConnectionStringBuilded,
                                                         ConnectionProvider);
ConfigurationManager.ConnectionStrings.Add(connectionStringSettingInstance);  

1 个答案:

答案 0 :(得分:2)

你把它搞混了。

无论您尝试什么,只读收集将保持只读。
它不是一个开关,而是一个定义。

此外,该集合来自app.config,您无法动态添加到该集合,因为它是物理的:在运行时ConfigurationManager静态类中出现的所有内容实际上都是在app.config中实际编写的

这是理论,但在实践中,you can cheat this by using reflection

所以,所有的希望都不会丢失。但是当你试图欺骗框架去做一些不应该做的事情时,是时候重新考虑你的设计了。