我在 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/