Microsoft.FeatureManagement.IFeatureManager 上的 IsEnabledAsync() 方法将始终返回相同的缓存值。例如,我可以将以下代码放入重复计时器中的 ASP.NET Core IHostedService 中,每次为功能调用 IsEnabledAsync 时,它都会返回与启动时相同的值。我可以在 Azure 中切换该功能,它仍会返回缓存的(不正确的)值。只有当我重新启动应用程序时,它才能正确获取功能设置。这是 IFeatureManager 的错误还是有更好的方法来做到这一点?我已经提交了一个github问题以防万一。
var features = await _featureManager.GetFeatureNamesAsync()
.ToListAsync();
var enabledFeatures = await features.SelectAsync(async f =>
{
var enabled = await _featureManager.IsEnabledAsync(f);
return enabled ? f : null;
});