我想使用Settings.settings來定義/堅持一些變量。爲了簡便起見,我已經建立了一個測試文件來證明我看到的行爲:查看Properties.Settings.Default變量
首先,我定義Settings.settings設置:
然後我有以下代碼以測試改變VARIABLENAME:
public Form1()
{
InitializeComponent();
string newString = Properties.Settings.Default.variableName;
Properties.Settings.Default.variableName = "This is a new string";
Properties.Settings.Default.Save();
}
運行上面在調試器的第一次,我抓取當前值VARIABLENAME從Properties.Settings(I在Settings.settings窗口最初設置的值)。正如所料,newString被設置爲「這是一個字符串」。好.....
在執行接下來的兩行之後,調試器顯示variableName改爲「這是一個新字符串」。好...
然後我再次通過調試器運行應用程序。我點擊了字符串newString行,並且在執行之前,newString未定義(當然)。好....
當我執行...
string newString = Properties.Settings.Default.variableName;
...和代碼的後續執行,VARIABLENAME的實際值被定義爲「此是一個新的字符串「(好...如預期)。
然後我回到Settings.settings窗口。 variableName沒有改變 - 它仍然是「這是一個字符串」。我甚至關閉了VSE 2012並重新開放了該項目。 Settings.settings從不改變。
存儲新值在哪裏?我檢查了所有.config文件([appname] .exe.config,[appname] .vshost.exe.config,app.config和Settings.settings文件)和新值「這是一個新的字符串「不在任何地方被發現。
總之,我從代碼中得到了我期望的結果,但似乎無法在設計時查看結果,除了在調試器中檢查var的值之外。這似乎不僅僅是我特有的,而且是不可能的。
我在想什麼/我在哪裏找?我完全期望在Settings.settings窗口中更改variableName的值,但它永遠不會。我到處尋找StackOverflow/Google,似乎無法找到答案。
在此先感謝....
感謝您抽出時間。 Settings.settings'var store'是一種很好的方法(IMO),可以避免與我的應用程序的ConfigurationManager混淆,該應用程序只在需要持久性的用戶範圍內有一個var。現在我可以在上面的示例中找到正在改變的文件(我將包含路徑,但我只有280個字符留給我的評論......哈哈),我更加自信地使用Settings.settings表。我知道這是不合理的偏執狂,但我沒有得到強迫症標籤,因爲我是一個合理的人。最好的祝福... – LovinItAll 2013-04-27 14:43:28