Tutorial: Habilitar recursos condicionais com um filtro personalizado em um aplicativo ASP.NET Core
Os sinalizadores de recursos podem usar filtros de recursos para habilitar recursos condicionalmente. Para saber mais sobre filtros de recursos, consulte Tutorial: Habilitar recursos condicionais com filtros de recursos.
O exemplo usado neste tutorial é baseado no aplicativo ASP.NET Core introduzido no início rápido de gerenciamento de recursos. Antes de prosseguir, conclua o início rápido para criar um aplicativo ASP.NET Core com um sinalizador de recurso Beta . Depois de concluído, você deve adicionar um filtro de recurso personalizado ao sinalizador de recurso Beta em sua loja de configuração de aplicativos.
Neste tutorial, você aprenderá como implementar um filtro de recursos personalizado e usar o filtro de recursos para habilitar recursos condicionalmente.
Pré-requisitos
- Crie um aplicativo ASP.NET Core com um sinalizador de recurso.
- Adicionar um filtro de recurso personalizado ao sinalizador de recurso
Implementar um filtro de recurso personalizado
Você adicionou um filtro de recurso personalizado chamado Aleatório com um parâmetro Porcentagem para o sinalizador de recurso Beta nos pré-requisitos. Em seguida, você implementará o filtro de recursos para habilitar o sinalizador de recurso Beta com base na chance definida pelo parâmetro Percentagem .
Adicione um
RandomFilter.cs
arquivo com o código a seguir.using Microsoft.FeatureManagement; namespace TestAppConfig { [FilterAlias("Random")] public class RandomFilter : IFeatureFilter { private readonly Random _random; public RandomFilter() { _random = new Random(); } public Task<bool> EvaluateAsync(FeatureFilterEvaluationContext context) { int percentage = context.Parameters.GetSection("Percentage").Get<int>(); int randomNumber = _random.Next(100); return Task.FromResult(randomNumber <= percentage); } } }
Você adicionou uma
RandomFilter
classe que implementa aIFeatureFilter
interface daMicrosoft.FeatureManagement
biblioteca. AIFeatureFilter
interface tem um único método chamadoEvaluateAsync
, que é chamado sempre que um sinalizador de recurso é avaliado. NoEvaluateAsync
, um filtro de recursos habilita um sinalizador de recurso retornandotrue
.Você decorou um
FilterAliasAttribute
para dar aoRandomFilter
seu filtro um alias Random, que corresponde ao nome do filtro definido no sinalizador de recurso Beta na Configuração do Aplicativo do Azure.Abra o arquivo Program.cs e registre o
RandomFilter
chamando oAddFeatureFilter
método.// The rest of existing code in Program.cs // ... ... // Add feature management to the container of services. builder.Services.AddFeatureManagement() .AddFeatureFilter<RandomFilter>(); // The rest of existing code in Program.cs // ... ...
Filtro de recursos em ação
Reinicie o aplicativo e atualize o navegador algumas vezes. Sem alternar manualmente o sinalizador de recurso, você verá que o menu Beta às vezes aparece e às vezes não.
Próximos passos
Para saber mais sobre os filtros de recursos internos, continue para os tutoriais a seguir.
Para obter o resumo completo dos recursos da biblioteca de gerenciamento de recursos do .NET, continue para o documento a seguir.