在此代码段中,将显示“Changed”,但不会显示“Changed!”。
我想问题出在.Configure<Profile>(profile => configuration.Bind(profile))
上,但是如何使它工作呢?
public static void Run()
{
var configuration = new ConfigurationBuilder()
.AddJsonFile(path: "Properties/profile.json", optional: false, reloadOnChange: true)
.Build();
ChangeToken.OnChange(
() => configuration.GetReloadToken(),
() => Console.WriteLine("Changed"));
new ServiceCollection()
.AddOptions()
.Configure<Profile>(profile => configuration.Bind(profile))
.BuildServiceProvider()
.GetRequiredService<IOptionsMonitor<Profile>>()
.OnChange(profile => Console.WriteLine("Changed!"));
Console.Read();
}
1条答案
按热度按时间rkkpypqq1#
.Configure<Profile>(profile => configuration.Bind(profile))
我测试过了。这是配置的绑定,使得示例在修改时不会重新填充。