热更新,默认是不支持的。

网站正在运行,在不关掉网站的情况,修改了配置文件appsettings.json文件。当用户下一次请求的时候,直接拿到我们的配置信息

这个跟我们在asp.net里面的config不一样,我们在更改web.config的内容后,站点会自动重启,重新加载。

这个热更新就是以后我们在修改了配置文件后,不会影响用户的访问。这是Configuration改进的比较有用的一个地方

我们只需要更改这一个地方IOptions修改为IOptionsSnapshot

任务14:配置的热更新

当你用到这种及时更新的配置信息就用IOptionsSnapshot

 任务14:配置的热更新

修改了配置信息后,我们只需要刷新页面就可以了

 

任务14:配置的热更新

实现的原理

在我们之前的项目里 ,这里的AddJsonFile方法有另外两个参数

参数2:是否可选,当这个存文件不存在的时候,是否会抛出异常。这里我们设置为fasle

参数3:reloadOnChange设置为true的话,当这个文件发生改变。就会重新加载这个文件。

任务14:配置的热更新

 

任务14:配置的热更新

using System;
using Microsoft.Extensions.Configuration;

namespace JsonConfig
{
    class Program
    {
        static void Main(string[] args)
        {
            var builder = new ConfigurationBuilder()
                .AddJsonFile("class.json",false,true);

            var configuration = builder.Build();

            Console.WriteLine($"ClassNo:{configuration["ClassNo"]}");
            Console.WriteLine($"ClassDesc:{configuration["ClassDesc"]}");

            Console.WriteLine("Students");

            Console.Write(configuration["Students:0:name"]);
            Console.WriteLine(configuration["Students:0:age"]);

            Console.Write(configuration["Students:1:name"]);
            Console.WriteLine(configuration["Students:1:age"]);

            Console.Write(configuration["Students:2:name"]);
            Console.WriteLine(configuration["Students:2:age"]);


            Console.ReadLine();

        }
    }
}
Program.cs

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2021-10-19
  • 2022-12-23
  • 2021-06-22
  • 2021-12-23
  • 2021-12-21
猜你喜欢
  • 2021-08-27
  • 2022-12-23
  • 2021-04-09
  • 2021-04-29
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案