App.Config 値変更の難題
提供されたコード スニペットでは、App.Config ファイル内の値を変更しようとしています。 。ただし、この変更は期待どおりに持続しません。この問題の原因を特定するために、提供されたコードを詳しく調べて、潜在的な問題を調べてみましょう。
コード セグメント:
lang = "Russian"; private void Main_FormClosing(object sender, FormClosingEventArgs e) { System.Configuration.ConfigurationManager.AppSettings.Set("lang", lang); }
実際には、 App.Config ファイル。ただし、応答で強調されているように、この変更はメモリ内でのみ発生し、物理構成ファイルには永続化されません。
この問題を解決する鍵は、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 中国語 Web サイトの他の関連記事を参照してください。