如何编辑app.config并使代码读取更改后的值而无需重新编译?

问题描述

我有几个存储库,要访问的存储库写在app.config中。

<appSettings>
  <add key="AccessRepository" value="Local"/>
</appSettings>

我的想法是,管理员将编写(使用文本编辑器之一)访问哪个存储库可以是本地或远程回购。我将“构建操作”和“复制到输出目录”的值分别设置为“内容”和“始终复制”。我认为,如果使用记事本更改输出目录中App.configAccessRepository的值,我可以实现此目标。但是,如果我使用记事本将AccessRepository的值更改为remote,我的应用程序仍将访问本地存储库。我用来检索AccessRepositroy值的代码是这样的:

string accessRepository = ConfigurationManager.AppSettings["AccessRepository"];
if (accessRepository == "Local")
{
      //Logic to access local repo
}
else if(accessRepository == "Remote")
{
      //Logic to access remote repo
}

所以我需要写AccessRepository的值,然后重新编译我的应用程序以访问另一个存储库。

我尝试过这种方法,但是不起作用:

ConfigurationManager.RefreshSection("appSettings");
string accessRepository = ConfigurationManager.AppSettings["AccessRepository"];

如何在不重新编译的情况下使应用程序使用最后写入的值?我要实现的操作是您在用App.config编写的文本编辑器和应用程序访问存储库中编辑AccessRepository的值。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)