App.Config 值修改困境
在提供的程式碼片段中,請嘗試修改 App.Config 檔案中的值。然而,這種修改並沒有如預期的那樣持續存在。為了找出這個問題的根源,讓我們深入研究所提供的程式碼並探討潛在的問題。
程式碼片段:
lang = "Russian"; private void Main_FormClosing(object sender, FormClosingEventArgs e) { System.Configuration.ConfigurationManager.AppSettings.Set("lang", lang); }
確實修改了應用程式設定檔。但是,正如回應中所強調的那樣,此修改僅發生在記憶體中,不會持久保存到實體設定檔中。
解決此問題的關鍵在於認識到 ConfigurationManager.AppSettings.Set("lang", lang) 僅進行臨時的記憶體中變更。要將這些變更保留到 App.Config 文件,需要執行額外的步驟。
回應引入了專為控制台應用程式自訂的修訂後的程式碼片段:
class Program { static void Main(string[] args) { UpdateSetting("lang", "Russian"); } private static void UpdateSetting(string key, string value) { Configuration configuration = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); configuration.AppSettings.Settings[key].Value = value; configuration.Save(); ConfigurationManager.RefreshSection("appSettings"); } }
在此程式碼中:
透過利用此更新的程式碼,對 App.Config 檔案所做的值修改現在已成功保留,解決了問題並允許所需的語言設定變更。
以上是為什麼 `ConfigurationManager.AppSettings.Set` 不保留 App.Config 更改?的詳細內容。更多資訊請關注PHP中文網其他相關文章!