Tutoriel : Activer les fonctionnalités conditionnelles avec un filtre personnalisé dans une application ASP.NET Core
Les indicateurs de fonctionnalités peuvent utiliser des filtres de fonctionnalités pour activer des fonctionnalités de manière conditionnelle. Pour en savoir plus sur les filtres de fonctionnalités, consultez Tutoriel : Activer des fonctionnalités conditionnelles avec des filtres de fonctionnalités.
L’exemple utilisé dans ce tutoriel est basé sur l’application ASP.NET Core introduite dans le guide de démarrage rapide sur la gestion des fonctionnalités. Avant de continuer, suivez ce guide de démarrage rapide pour créer une application ASP.NET Core avec un indicateur de fonctionnalité Beta. Une fois terminé, vous devez ajouter un filtre de fonctionnalités personnalisé à l’indicateur de fonctionnalité Beta dans votre magasin App Configuration.
Dans ce tutoriel, vous allez apprendre à implémenter un filtre de fonctionnalités personnalisé et à l’utiliser pour activer les fonctionnalités de manière conditionnelle.
Prérequis
- Créez une application ASP.NET Core avec un indicateur de fonctionnalité.
- Ajouter un filtre de fonctionnalité personnalisé à l’indicateur de fonctionnalité
Implémenter un filtre de fonctionnalité personnalisé
Vous avez ajouté un filtre de fonctionnalités personnalisé nommé Random avec un paramètre Percentage pour votre indicateur de fonctionnalité Beta dans les prérequis. Ensuite, vous allez implémenter le filtre de fonctionnalités pour activer l’indicateur de fonctionnalité Beta en fonction de la chance définie par le paramètre Percentage.
Ajoutez un fichier
RandomFilter.cs
avec le code suivant.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); } } }
Vous avez ajouté une classe
RandomFilter
qui implémente l’interfaceIFeatureFilter
à partir de la bibliothèqueMicrosoft.FeatureManagement
. L’interfaceIFeatureFilter
a une méthode unique nomméeEvaluateAsync
, appelée chaque fois qu’un indicateur de fonctionnalité est évalué. DansEvaluateAsync
, un filtre de fonctionnalités active un indicateur de fonctionnalité en retournanttrue
.Vous avez décoré un
FilterAliasAttribute
pour leRandomFilter
afin de donner à votre filtre un alias Random, qui correspond au nom de filtre que vous avez défini dans l’indicateur de fonctionnalité Beta dans Azure App Configuration.Ouvrez le fichier Program.cs et inscrivez le
RandomFilter
en appelant la méthodeAddFeatureFilter
.// 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 // ... ...
Filtre de fonctionnalités en action
Relancez l’application et actualisez le navigateur quelques fois. Sans activer manuellement l’indicateur de fonctionnalité, vous voyez que le menu Beta apparaît parfois et parfois pas.
Étapes suivantes
Pour en savoir plus sur les filtres de fonctionnalités intégrés, passez aux tutoriels suivants.
Pour obtenir la liste complète des fonctionnalités de la bibliothèque de gestion des fonctionnalités .NET, passez au document suivant.