c# - 应用程序配置修改未反射(reflect)在代码中

标签 c# winforms app-config

我在 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('-');
}

为什么会这样?

最佳答案

app.config 文件中的AppSetting 部分 在运行时更新期间没有得到反射(reflect)的原因如下:

  • 当您添加新的 app.config 文件时,它实际上会在本地系统中创建一个文件。
  • 当您编译它时,实际上它会在Debug/Release 文件夹中创建必要的文件,包括.Exe 文件;取决于构建模式。
  • 成功构建后,它还会生成一个看起来像 YourApplicationName.exe.config.config 文件,其中包含原始 app.config 文件中的相同条目。 .Exe 总是引用这个文件。
  • 因此,每当您在运行时编辑 app.config 时,它实际上会更新文件,但更改不会更新到 YourApplicationName.exe.config 文件中,因为它没有重新尚未构建。

因此,每次您需要重新构建您的应用以反射(reflect)更改时。

关于c# - 应用程序配置修改未反射(reflect)在代码中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16855043/

相关文章:

c# - 处理@@Identity 时转换无效

c# - 设置用户控件的父级可防止其透明

c# - 如何调试 SqlCommand Parameter.AddWithValue

c# - 如何存储应用程序设置?

javascript - .Net Core PartialView 中的分页

c# - SQL Server : "CREATE ASSEMBLY for assembly ' Test' failed because assembly 'Test' is malformed or not a pure . NET 程序集。”

c# - 不同地区不同认证方式

c# - skiasharp 中是否有 system.drawing.drawing2D.GraphicsPath 的替代方案?

c# - 将哈希表添加到设置

c# - 为什么 config.Appsettings.Settings ["MySetting"].Value 在 Windows 7 中失败,但在其他版本中没有