应用配置修改未反映在代码中
本文关键字:代码 配置 修改 应用 | 更新日期: 2023-09-27 18:16:26
我在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 section
在运行时更新期间没有得到反映的原因如下:
- 当你添加一个新的app.config文件时,它会在本地系统中创建一个文件。
- 当你编译它时,实际上它会在
Debug/Release
文件夹中创建必要的文件,包括.Exe
文件;这取决于构建模式。 - 成功构建后,它还生成一个
.config
文件,看起来像YourApplicationName.exe.config
,它在原始app.config文件中包含相同的条目。.Exe
总是指向这个文件。 所以当你在运行时编辑
app.config
时,它实际上更新了文件,但YourApplicationName.exe.config
文件中的更改没有更新,因为它还没有重新构建。所以每次你需要重新构建你的应用来反映这些变化
我有自己的答案。只需要刷新appSettings
部分
ConfigurationManager.RefreshSection("appSettings");
app。配置被缓存,更改将在重新启动应用程序时反映出来。看到的应用程序配置文件在WinForms缓存的。net框架?
试试这个:
string strDayTime = ConfigurationManager.AppSettings["DayTime"];
ConfigurationManager.AppSettings.Set("DayTime", "11-20");
strDayTime = ConfigurationManager.AppSettings["DayTime"];
strDayTime变量的值在两行都改变