基于上一节 Bind,Options读取配置到C#实例 项目基础之上完善配置的热更新
什么事热更新,当修改Appsettings.json文件数据后,后面的请求会自动加载最新数据,
与以往不同的是网站不回重新启动,其原理是分配了一个线程监视文件的修改,适用于配置文件经常变动的部署
只需要将上一节的依赖注入的控制器的IOptions<Class>改为IOptionsSnapshot<Class>
public class HomeController : Controller { private readonly Class _myclass; //Options public HomeController(IOptionsSnapshot<Class> classAccesser) { this._myclass = classAccesser.Value; } }
网站默认是启动一个线程跟踪文件的如果业务不需要也可以关闭它在Program-》BuildWebHost方法中
public class Program { public static void Main(string[] args) { BuildWebHost(args).Run(); } public static IWebHost BuildWebHost(string[] args) => WebHost.CreateDefaultBuilder(args)//会默认将appsettings.json 读取 .ConfigureAppConfiguration(config => config.AddJsonFile("Appsettings.json", false, false)) //上面是重新设置读取APPsetting,然后关闭热更新 .UseStartup<Startup>() .Build(); }
AddJsonFile方法重载
方法重载,1文件夹2当不存在的时候是否抛异常3当文件改变时是否重新加载配置