Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Os sinalizadores de recursos podem usar filtros de recursos para habilitar os 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 os recursos condicionalmente.
Pré-requisitos
- O aplicativo ASP.NET Core com um sinalizador de recurso Beta que você cria ao concluir as etapas no 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 funcionalidades.
- Um filtro de recurso personalizado chamado
Random, adicionado ao sinalizador de recurso Beta em seu repositório de Configuração de Aplicativos do Azure. Para obter instruções, consulte Adicionar um filtro de recurso personalizado.
Implementar um filtro de recurso personalizado
No repositório de Configuração de Aplicativos, o sinalizador de recurso Beta tem um filtro de recursos personalizado chamado 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 aplicativo ASP.NET Core do início rápido de gerenciamento de recursos listado 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. A interfaceIFeatureFiltertem um único método chamadoEvaluateAsync, que é chamado sempre que um sinalizador de recurso é avaliado. EmEvaluateAsync, um filtro de recurso habilita um sinalizador de recurso retornandotrue.Nesse código, a
RandomFilterclasse é decorada comFilterAliasAttribute, o que fornece 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. Registre
RandomFilteradicionando uma chamada ao métodoAddFeatureFilter, conforme mostrado no seguinte código:// 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 funcionalidade
Crie seu aplicativo usando o
dotnet buildcomando. Em seguida, execute-o usandodotnet run.Na saída do comando
dotnet run, localize uma URL na qual o aplicativo Web esteja escutando. Abra um navegador e vá para essa URL.Atualize o navegador algumas vezes. Às vezes, o menu Beta aparece na página da Web e, às vezes, não aparece. O sinalizador de recurso Beta não está sendo ativado e desativado manualmente. A variação é causada pelo número aleatório que a implementação
RandomFilterdeEvaluateAsyncgera quando o sinalizador de recurso é avaliado.
Próximas etapas
Para saber mais sobre filtros de funcionalidades embutidas, consulte os seguintes documentos:
Para a visão geral completa dos recursos da biblioteca de gerenciamento de recursos do .NET, siga para o seguinte documento: