在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
asp.net core重新加载应用配置Intro 我把配置放在了数据库或者是Redis里,配置需要修改的时候我要直接修改数据库,然后调用一个接口去重新加载应用配置,于是就尝试写一个运行时重新加载配置的接口。 Configuration 重新加载实现 重新加载配置的接口其实很简单,经过看 来看实现重新加载配置的代码 using Microsoft.AspNetCore.Mvc; using Microsoft.Extensions.Configuration; namespace TestWebApplication.Controllers { [Route("api/[controller]")] public class ConfigurationsController : Controller { private readonly IConfigurationRoot _configuration; public ConfigurationsController(IConfiguration configuration) { _configuration = configuration as IConfigurationRoot; } [HttpGet] public IActionResult Get() { return Ok(new { RootUser = _configuration.GetAppSetting("RootUser") // 这里 GetAppSetting 是一个自定义扩展方法,获取AppSettings 节点下的配置信息 }); } [HttpPut] public IActionResult Put() { _configuration.Reload(); return Ok(); } } } 是不是很简单,下面我们来尝试一下,你可以参考这个示例项目 因为默认的项目配置会监听 appsettings.json 文件是否修改,如果已修改就会重新reload,这里我新加一个文件,这里设置 public static IWebHostBuilder CreateWebHostBuilder(string[] args) => WebHost.CreateDefaultBuilder(args) .ConfigureAppConfiguration(configBuilder => { configBuilder.AddJsonFile("abc.json", optional: true, reloadOnChange: false); }) .UseStartup<Startup>(); abc.json 的文件内容如下: { "AppSettings": { "TestNumber": 12, "RootUser": "WeihanLi" } }
然后我们修改 abc.json 文件 { "AppSettings": { "TestNumber": 12, "RootUser": "WeihanLi 123" } } 修改保存之后刷新刚才的页面,可以看到还是刚才的内容,证明并没有重新加载配置,接下来尝试我们的重新加载配置方法 使用 postman 或 fiddler 或其他你喜欢的工具发一个 PUT 请求到 返回 200 即接口调用成功,重新刷新刚才的页面就可以看到页面上的数据已经发生变化,这也就证明了我们重新加载配置的接口生效了。 源码解析 来看 可以看到这里最后返回的是一个 可以看到 这里我们可以看到为什么 appsettings.json 文件会自动 reload 配置,可以看到最后返回了一个 看 Asp.Net core 在 上面我们已经知道 Memo 到此就暂时结束了,希望你能有所收获~ 以上所述是小编给大家介绍的asp.net core重新加载应用配置详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对极客世界网站的支持! |
请发表评论