2012-03-15 63 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