重新加载.NET配置文件

Mar*_*kus 8 .net c# configuration configuration-files

我需要在修改后重新加载配置文件.如何使用appdomains完成此操作?代码示例很有用.

Jay*_*van 10

假设您有以下配置文件:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <appSettings>
    <add key="test" value="1" />
  </appSettings>
</configuration>
Run Code Online (Sandbox Code Playgroud)

让我们先尝试一下天真的方法.以下应用程序将尝试获取每秒appSetting命名test一次的值,并打印其值:

static void Main(string[] args)
{
    while(true)
    {
        Console.WriteLine(ConfigurationManager.AppSettings["test"]);
        Thread.Sleep(1000);
    }
}
Run Code Online (Sandbox Code Playgroud)

可惜!在运行时,您会注意到它会继续打印1,并且不会进行任何更改.

如果您将代码更新为以下内容,它将解决此问题,并且只要您更改它就会获取更改:

static void Main(string[] args)
{
    while(true)
    {
        ConfigurationManager.RefreshSection("appSettings");
        Console.WriteLine(ConfigurationManager.AppSettings["test"]);
        Thread.Sleep(1000);
    }
}
Run Code Online (Sandbox Code Playgroud)