Winform項目中的Settings.settings與App.config


開發環境:Win10 64Bit,VS2013

新建一個Winform項目,會看到項目中有這樣兩個文件:Properties\Settings.settings(XML文件,還有一個配套的自動生成的Settings.Designer.cs),App.config。

簡而言之,Settings對應App.config中的這兩個Section:“configuration\userSettings”與“configuration\applicationSettings”,Settings提供了可視化修改App.config中這兩個Section的途徑,然而Settings與App.config卻是獨立存在於磁盤上的兩個實體。

做幾個簡單實驗,就理解咋回事了。


修改Settings文件,App.config一定會跟着同步;但手動修改App.config,卻分幾種情況:

1,修改字段值,打開Settings時,會彈出對話框,告知值不一樣,詢問是否更新,要回答否的話,兩個文件就不同步了。(當然,只要修改一下Settings,App.config就一定跟着同步。)

2,增加字段值,打開Settings時,會自動修改Settings,沒有任何詢問,無條件加入對應的字段值。

3,刪除字段值,打開Settings時,什么也不會發生,如果此時改動了Settings,App.config會被同步,只要改動不是同樣的刪除,刪除的字段就又回來了。

生成應用程序時,會將App.config復制到TARGET目錄下,並改名為“執行文件.exe.config”,跟Settings沒有關系。


 configuration\userSettings可以在執行期間讀寫:

讀:Properties.Settings.Default.xx

寫:Properties.Settings.Default[xx] = new_value; Properties.Settings.Default.Save();

configuration\applicationSettings據說也可以修改,不過比較麻煩,我建議“不要沒事找抽”!


按照奧克姆剃刀原則,如無必要,勿增實體,所以更好的設計應該是:在App.config下增加一個APP.config.designer.cs來替代Settings.Designer.cs,同時為App.config提供可視化界面與代碼界面。微軟又犯二了!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM