.NET Core - 配置变更监听:配置热更新能力的核心

前面几节,我们学习了配置框架的几种配置方式,本节,我们以文件提供程序为例来说一下,配置变更的操作。

配置文件的访问级别较低,相对比较便利,我们可能需要通过更改配置文件来让某些配置生效,而不需要重启应用程序。那么,此时,就需要用到配置框架的配置变更监听能力。

核心接口

  • IChangeToken

配置框架提供了IChangeToken接口,可用于配置变更监听

IChangeToken changeToken = configurationRoot.GetReloadToken();

同时,注册其回调方法

changeToken.RegisterChangeCallback(state =>
{
    Console.WriteLine($"key1:{configurationRoot["key1"]}");
    Console.WriteLine($"key2:{configurationRoot["key2"]}");
}, configurationRoot);

多次变更获取

但是,这种方法只能获取一次变更,也就是说,第二次更改的话不能再获取,因此,微软为我们提供了一个另外的方法

ChangeToken.OnChange()

通过该方法,只要有变更即可获取,方法有2个参数,一个是变更的获取,一个是变更的回调方法,和上述类似

ChangeToken.OnChange(() => configurationRoot.GetReloadToken(), () =>
{
    Console.WriteLine($"key1:{configurationRoot["key1"]}");
    Console.WriteLine($"key2:{configurationRoot["key2"]}");
});

这样的话,我们即实现了配置的热更新能力。

 

这里,我们使用的该种方式只适用于文件提供程序,内存配置、命令行配置、环境变量配置可以通过自定义的监听逻辑来实现,具体过程与上述类似,这里就不详说了,你可以自己试着写一下。

 

源码可访问

https://github.com/IronMarmot/Samples/tree/master/CoreSamples

更多课程详细内容,可识别下方二维码购买。

扫描二维码购买课程,可后台留言获得10元红包返现。

                                             

部分内容来源于网络,侵删。

更多精彩内容,请微信搜索攻城狮客栈 或扫描下方二维码

------------------------------------------------------------------------------

公众号:攻城狮客栈

CSDN:画鸡蛋的不止达芬奇

 

                                                                 

让我们一起变的更优秀。


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值