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

简介: .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


相关文章
|
11小时前
|
SQL Shell 数据库
七天.NET 8操作SQLite入门到实战 - 第二天 在 Windows 上配置 SQLite环境
七天.NET 8操作SQLite入门到实战 - 第二天 在 Windows 上配置 SQLite环境
|
3月前
|
容器
.NET Core - 选项框架:服务组件集成配置的最佳实践
.NET Core - 选项框架:服务组件集成配置的最佳实践
|
3月前
|
存储
.NET Core - 自定义配置数据源:低成本实现定制化配置方案
.NET Core - 自定义配置数据源:低成本实现定制化配置方案
|
3月前
|
JSON 数据格式
.NET Core - 配置绑定:使用强类型对象承载配置数据
.NET Core - 配置绑定:使用强类型对象承载配置数据
|
3月前
|
开发框架 JSON Kubernetes
.NET Core - 环境变量配置和文件提供程序配置方式详解
.NET Core - 环境变量配置和文件提供程序配置方式详解
|
3月前
|
存储
.NET Core - 内存配置和命令行配置方式详解
.NET Core - 内存配置和命令行配置方式详解
|
3月前
.NET Core - 配置框架:让服务无缝适应各种环境
.NET Core - 配置框架:让服务无缝适应各种环境
|
3月前
.NET Core-自定义配置数据源
前面,我们学习了配置框架的4种配置方式,那么你知道如何实现自定义的配置数据源吗?知道如何低成本实现定制化配置方案吗?下面我们就一起来学习一下吧。
|
3月前
.NET Core配置强类型绑定及配置热更新能力
学习了配置框架的4种配置方式之后,我们可以对不同的环境选择不同的配置方式,以使服务能够更好的适应各种环境,那么,你是否觉得配置虽然加载进服务中,但是使用起来却不是很方便,每次读取都得通过对应的键值去根查找,是否想过如果我们修改了配置文件呢?本篇,我们一起来学习下这两个问题。为了方便演示,本节使用文件提供程序配置方式。
|
3月前
|
开发框架 JSON Kubernetes
.NET Core配置框架及4种配置方式详解(下)
上一篇,我们学习了4种配置方式的内存配置和命令行配置方式,本篇,我们来学习另外2种方式:环境变量配置方式和文件提供程序方式。
.NET Core配置框架及4种配置方式详解(下)
推荐文章
更多