1

appconfig ファイルに appsetting セクションがあります。

<appSettings>    
  <add key="DayTime" value="08-20"/>
  <add key="NightTime" value="20-08"/>
</appSettings>

アプリケーションの実行中にアプリの構成を変更しようとしています。アプリケーションの実行中にキーDayTimeを 11-20 に変更しました。

このコードを再度実行して構成からデータをフェッチすると、以前の設定値が表示されます。

private void btnDayNightSettings_ShowingEditor(object sender, ItemCancelEventArgs e)
{
     string[] strDayTime = ConfigurationManager.AppSettings["DayTime"].Split('-');
}

なぜそうなのか?

4

4 に答える 4

7

実行時の更新時にAppSetting sectioninファイルが反映されない理由は次のとおりです。app.config

  • 新しい app.config ファイルを追加すると、実際にはローカル システムにファイルが作成されます。
  • コンパイルすると、実際にはフォルダー内のファイルを含む必要なファイルが作成.Exeされます。Debug/Releaseビルドモードによって異なります。
  • ビルドが成功すると、元の app.config ファイルと同じエントリを保持する.configようなファイルも生成されます。YourApplicationName.exe.configそして、.Exe常にこのファイルを参照します。
  • したがって、実行時に編集するたびに、app.config実際にはファイルが更新されYourApplicationName.exe.configますが、まだ再構築されていないため、変更はファイルで更新されません。

したがって、変更を反映するためにアプリを再構築する必要があるたびに。

于 2013-05-31T11:00:10.743 に答える
4

私には私なりの答えがあります。appSettingsセクションを更新するだけです

ConfigurationManager.RefreshSection("appSettings");
于 2013-05-31T10:47:33.537 に答える
2

app.config がキャッシュされているため、アプリケーションを再起動すると変更が反映されます。WinFormsのapp.configファイルは.Netフレームワークによってキャッシュされていますか?

于 2013-05-31T10:35:18.827 に答える