我正在尝试向 .net core 2.2 控制台应用程序添加功能标志。功能标志在 Azure 应用配置存储中定义。
当在 appsettings.json 文件中定义功能标志时,我遇到了一个问题,但让它起作用了。完整的控制台项目在我的SO 问题中定义。这不是问题。
我正在尝试按照教程进行操作,这让我发疯了。这里的问题是本教程并不简单。它是一个网络应用程序,在它之上,他使用了Secret manager 工具。
我根本无法按照教程中的说明使 webapp 工作,因此我尝试首先创建一个简单的控制台应用程序,但到目前为止,Azure App Config store 无法成功。
这是迄今为止无法运行的控制台应用程序。任何帮助都深表感谢。
以下是添加到控制台项目的包。
- Microsoft.Extensions.Configuration.AzureAppConfiguration
- Microsoft.Extensions.Configuration.Json
- Microsoft.Extensions.DependencyInjection
- Microsoft.FeatureManagement
using System;
using System.Threading.Tasks;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.FeatureManagement;
using Microsoft.FeatureManagement.FeatureFilters;
using Microsoft.Extensions.Configuration.AzureAppConfiguration;
namespace ConfigurationConsoleApp
{
class Program
{
static async Task Main(string[] args)
{
var builder = new ConfigurationBuilder();
var azureConnectionString = "<APP_CONFIGURATION_CONNECTION_STRING>";
//builder.AddAzureAppConfiguration(options =>
//{
// options.Connect(azureConnectionString).UseFeatureFlags();
//});
builder.AddAzureAppConfiguration(azureConnectionString);
var config = builder.Build();
Console.WriteLine(config["TestApp:Settings:Message"] ?? "Hello world!");
var configuration = new ConfigurationBuilder().AddJsonFile("appsettings.json").Build();
var services = new ServiceCollection();
//services.AddSingleton<IConfiguration>(configuration).AddFeatureManagement().AddFeatureFilter<PercentageFilter>().AddFeatureFilter<AccountIdFilter>();
services.AddSingleton<IConfiguration>(config).AddFeatureManagement();//.AddFeatureFilter<PercentageFilter>().AddFeatureFilter<AccountIdFilter>();
const string FeatureName = "Beta";
using (ServiceProvider serviceProvider = services.BuildServiceProvider())
{
var featureManager = serviceProvider.GetRequiredService<IFeatureManager>();
var enabled = await featureManager.IsEnabledAsync(FeatureName);
Console.WriteLine($"The {FeatureName} feature is {(enabled ? "enabled" : "disabled")} ");
}
}
}
}