12 | 配置变更监听:配置热更新能力的核心
场景
- 需要记录配置源的变更时
- 需要在配置数据变更时触发特定操作时
当我们需要追踪我们的配置发生变化时,在配置发生变化时我们需要执行一些特定的操作的时候,这个时候就需要我们来进行一定的编码,来跟踪我们配置的变化
关键方法
IChangeToken IConfiguration.GetReloadToken()
示例
使用上一篇笔记创建的控制台应用程序,将代码修改为:
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Primitives;
using System;
namespace ConfigurationFileDemo
{
class Program
{
static void Main(string[] args)
{
var builder = new ConfigurationBuilder();
var root = builder.AddJsonFile("appsettings.json", true, true).Build();
IChangeToken token = root.GetReloadToken();
token.RegisterChangeCallback(state =>
{
Console.WriteLine($"Key1 : {root["key1"]}");
Console.WriteLine($"Key2 : {root["key2"]}");
Console.WriteLine($"Key3 : {root["key3"]}");
}, root);
Console.ReadKey();
}
}
}
IChangeToken token = root.GetReloadToken();
这行代码获取一个IChangeToken
对象,接口定义
using System;
namespace Microsoft.Extensions.Primitives
{
public interface IChangeToken
{
bool HasChanged { get; }
bool ActiveChangeCallbacks { get; }
IDisposable RegisterChangeCallback(Action