Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Os sinalizadores de recursos podem usar filtros de recursos para habilitar recursos condicionalmente. Para obter mais informações sobre filtros de recursos, consulte Habilitar recursos condicionais com filtros de recursos.
Este guia mostra como implementar um filtro de recurso personalizado em um aplicativo ASP.NET Core e usar o filtro de recursos para habilitar recursos condicionalmente.
Pré-requisitos
- O aplicativo ASP.NET Core com um sinalizador de recurso Beta que você cria ao concluir as etapas em Guia de início rápido: adicionar sinalizadores de recursos a um aplicativo ASP.NET Core. Este guia baseia-se nesse início rápido de gerenciamento de recursos.
- Um filtro de recurso personalizado chamado
Random, adicionado ao flag de recurso Beta na sua loja de Configuração de Aplicativo do Azure. Para obter instruções, consulte Adicionar um filtro de recurso personalizado.
Implementar um filtro de recurso personalizado
Na sua loja de Configuração de Aplicações, o sinalizador de funcionalidades Beta tem um filtro de funcionalidades personalizado denominado Random. Esse filtro tem um Percentage parâmetro. Para implementar o filtro de recursos, habilite o sinalizador de recurso Beta com base na chance definida pelo Percentage parâmetro.
Vá para a pasta que contém o projeto de aplicação ASP.NET Core da introdução rápida ao gerenciamento de funcionalidades listada em Pré-requisitos.
Adicione um arquivo RandomFilter.cs que contém o seguinte código:
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); } } }A
RandomFilterclasse no código anterior implementa aIFeatureFilterinterface daMicrosoft.FeatureManagementbiblioteca. AIFeatureFilterinterface 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.Neste código, a classe
RandomFilteré decorada comFilterAliasAttribute, o que dá ao seu filtro o aliasRandom. Esse alias corresponde ao nome do filtro no sinalizador de recurso Beta na Configuração do aplicativo.Abra o arquivo Program.cs . Registe
RandomFilteradicionando uma invocação ao métodoAddFeatureFilter, conforme mostrado no código a seguir.// Existing code in Program.cs // ... ... // Add feature management to the container of services. builder.Services.AddFeatureManagement() .AddFeatureFilter<RandomFilter>(); // The rest of the existing code in Program.cs // ... ...
Aplicar o filtro de funcionalidades
Crie seu aplicativo usando o
dotnet buildcomando. Em seguida, execute-o usandodotnet run.Na saída do comando
dotnet run, localize uma URL que a aplicação web está a escutar. Abra um navegador e vá para esse URL.Atualize o navegador algumas vezes. O menu Beta às vezes aparece na página da Web, e às vezes não. O sinalizador do recurso Beta não está sendo ativado e desativado manualmente. A variação é causada pelo número aleatório que a implementação de
RandomFiltergera quando o sinalizador de recursoEvaluateAsyncé avaliado.
Próximos passos
Para saber mais sobre os filtros de funcionalidade integrados, consulte os seguintes documentos.
Para obter o resumo completo de recursos da biblioteca de gerenciamento de recursos do .NET, continue para o seguinte documento: