Habilitación de características condicionales con un filtro personalizado en una aplicación de ASP.NET Core
Las marcas de características pueden usar filtros de características para habilitarlas de forma condicional. Para obtener más información sobre los filtros de características, consulte Habilitación de características condicionales con filtros de características.
En el ejemplo que se usa en esta guía, se utiliza la aplicación de ASP.NET Core que se usó en el inicio rápido de administración de características. Antes de continuar, complete el inicio rápido en el que se crea una aplicación de ASP.NET Core con una marca de característica beta. Una vez completado, debe agregar un filtro de características personalizado a la marca de característica beta en el almacén de App Configuration.
En esta guía, aprenderá a implementar un filtro de características personalizado y a usar el filtro de características para habilitarlas de forma condicional.
Requisitos previos
- Cree una aplicación de ASP.NET Core con una marca de característica.
- Agregar un filtro de características personalizado a la marca de característica
Implementación de un filtro de características personalizado
Ha agregado un filtro de características personalizado denominado Aleatorio con un parámetro de porcentaje para la marca de característica beta en los requisitos previos. A continuación, implementará el filtro de características para habilitar la marca de característica beta en función de la probabilidad definida por el parámetro de porcentaje.
Agregue un archivo
RandomFilter.cs
con el código siguiente.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); } } }
Ha agregado una clase
RandomFilter
que implementa la interfazIFeatureFilter
desde la biblioteca deMicrosoft.FeatureManagement
. La interfazIFeatureFilter
tiene un único método denominadoEvaluateAsync
, al que se llama cada vez que se evalúa una marca de característica. EnEvaluateAsync
, un filtro de características habilita una marca de característica devolviendotrue
.Ha decorado un
FilterAliasAttribute
en elRandomFilter
para proporcionar al filtro un alias Random, que coincide con el nombre de filtro que estableció en la marca de característica beta en Azure App Configuration.Abra el archivo Program.cs y registre el
RandomFilter
llamando al métodoAddFeatureFilter
.// 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 características en acción
Vuelva a iniciar la aplicación y actualice el explorador varias veces. Sin alternar manualmente la marca de característica, verá que a veces aparece el menú Beta a veces aparece y otras veces no.
Pasos siguientes
Para más información sobre los filtros de características integrados, continúe con los siguientes documentos.
Para obtener la lista completa de características de la biblioteca de administración de características de .NET, continúe con el siguiente documento.