Note
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Les indicateurs de fonctionnalités peuvent utiliser des filtres de fonctionnalités pour activer des fonctionnalités de manière conditionnelle. Pour plus d’informations sur les filtres de fonctionnalités, consultez Activer les fonctionnalités conditionnelles avec des filtres de fonctionnalités.
Ce guide vous montre comment implémenter un filtre de fonctionnalités personnalisé dans une application ASP.NET Core et utiliser le filtre de fonctionnalités pour activer les fonctionnalités de manière conditionnelle.
Prérequis
- L’application ASP.NET Core avec un indicateur de fonctionnalité bêta que vous créez lorsque vous effectuez les étapes de démarrage rapide : Ajouter des indicateurs de fonctionnalité à une application ASP.NET Core. Ce guide s’appuie sur le démarrage rapide de la gestion des fonctionnalités.
- Filtre de fonctionnalités personnalisé appelé
Random, ajouté à l’indicateur de fonctionnalité bêta dans votre magasin Azure App Configuration. Pour obtenir des instructions, consultez Ajouter un filtre de fonctionnalités personnalisé.
Implémenter un filtre de fonctionnalité personnalisé
Dans votre magasin App Configuration, l’indicateur de fonctionnalité bêta a un filtre de fonctionnalités personnalisé nommé Random. Ce filtre a un Percentage paramètre. Pour implémenter le filtre de fonctionnalités, vous activez l’indicateur de fonctionnalité bêta en fonction de la chance définie par le Percentage paramètre.
Accédez au dossier qui contient le projet d’application ASP.NET Core à partir du guide de démarrage rapide de gestion des fonctionnalités répertorié dans Prérequis.
Ajoutez un fichier RandomFilter.cs qui contient 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); } } }La
RandomFilterclasse du code précédent implémente l’interfaceIFeatureFilterà partir de laMicrosoft.FeatureManagementbibliothèque. L’interfaceIFeatureFiltera 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.Dans ce code, la
RandomFilterclasse est décorée avecFilterAliasAttribute, ce qui donne à votre filtre l’aliasRandom. Cet alias correspond au nom du filtre dans l’indicateur de fonctionnalité Bêta dans App Configuration.Ouvrez le fichier Program.cs. Enregistrez
RandomFilteren ajoutant un appel à la méthodeAddFeatureFilter, comme indiqué dans le code suivant :// 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 // ... ...
Appliquer le filtre de fonctionnalités
Générez votre application à l’aide de la
dotnet buildcommande. Exécutez-la ensuite en utilisantdotnet run.Dans la sortie de la
dotnet runcommande, recherchez une URL sur laquelle l’application web écoute. Ouvrez un navigateur et accédez à cette URL.Actualisez le navigateur à plusieurs reprises. Le menu bêta s’affiche parfois sur la page web, et parfois il ne le fait pas. L’indicateur de fonctionnalité bêta n’est pas activé et désactivé manuellement. La variation est due au nombre aléatoire généré par l’implémentation
RandomFilterdeEvaluateAsynclorsque l’indicateur de fonctionnalité est évalué.
Étapes suivantes
Pour en savoir plus sur les filtres de fonctionnalités intégrés, passez aux documents suivants :
Pour l’aperçu complet des fonctionnalités de la bibliothèque de gestion des fonctionnalités .NET, consultez le document suivant :