2012-03-15 87 views
0

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

,因为它的我得到的ConnectionstringReadonly。当我试图编辑在运行时间

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

回答

2

你完全搞混了。

无论您尝试什么,只读集合都将保持只读状态。
这不是一个开关,它是一个定义。

此外,该集合来自app.config中,因为它是身体不能动态添加到集合:出现在运行时ConfigurationManager中静态类是实际的物理写在App.config一切

这就是理论,但实际上,you can cheat this by using reflection

所以,所有的希望都不会丢失。但是,当您尝试欺骗框架做某件事情时,并不打算这么做,现在是重新考虑您的设计的时候了。

+0

感谢狒狒为你的简短而甜蜜的解释.. – user824910 2012-03-15 11:27:02

+0

......或者你做[this](http://stackoverflow.com/a/8796252/58961),它不涉及反思。 – 2017-02-13 18:31:34