假设我有这个代码:
appConfigOptions.ConfigureRefresh(refresh =>
{
refresh.Register("Sentinel", "Common", refreshAll: true)
.SetCacheExpiration(TimeSpan.FromMinutes(5));
});
当 Sentinel key 发生变化时,是否也可以调用回调/Action,以便我们可以将更新的配置重新绑定到类中?
基本上我想再次调用此启动代码的最后一行来刷新
MyAppSettingsClass
:
var builder = WebApplication.CreateBuilder(args);
builder.Configuration.AppConfiguration(configuration);
builder.Services.Configure<MyAppSettingsClass>(configuration);
它应该自动工作,无需您执行任何特殊操作。查看 Azure 应用程序配置 GitHub 存储库中的示例:
如前所述,
中间件自动刷新配置。
访问动态配置需要
IOptionsMonitor<MyOptions>
,否则它只是启动期间可用值的快照。
示例:
public class MyClass(IOptionsMonitor<MyOptions> options)
{
public void MyFunction()
{
if(options.CurrentValue.MyFlag)
DoStuff();
}
}