Włączanie funkcji warunkowych przy użyciu filtru niestandardowego w aplikacji ASP.NET Core
Flagi funkcji mogą używać filtrów funkcji w celu warunkowego włączania funkcji. Aby dowiedzieć się więcej na temat filtrów funkcji, zobacz Włączanie funkcji warunkowych z filtrami funkcji.
Przykład używany w tym przewodniku jest oparty na aplikacji ASP.NET Core wprowadzonej w przewodniku Szybki start dotyczącym zarządzania funkcjami. Przed kontynuowaniem ukończ przewodnik Szybki start, aby utworzyć aplikację ASP.NET Core z flagą funkcji beta . Po zakończeniu należy dodać niestandardowy filtr funkcji do flagi funkcji beta w magazynie App Configuration.
W tym przewodniku dowiesz się, jak zaimplementować niestandardowy filtr funkcji i użyć filtru funkcji w celu warunkowego włączenia funkcji.
Wymagania wstępne
- Utwórz aplikację ASP.NET Core z flagą funkcji.
- Dodawanie niestandardowego filtru funkcji do flagi funkcji
Implementowanie niestandardowego filtru funkcji
Dodano niestandardowy filtr funkcji o nazwie Random z parametrem Procent dla flagi funkcji beta w wymaganiach wstępnych. Następnie zaimplementujesz filtr funkcji, aby włączyć flagę funkcji beta na podstawie prawdopodobieństwa zdefiniowanego przez parametr Percentage .
RandomFilter.cs
Dodaj plik z następującym kodem.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); } } }
Dodano klasę
RandomFilter
, która implementujeIFeatureFilter
interfejs z bibliotekiMicrosoft.FeatureManagement
. InterfejsIFeatureFilter
ma jedną metodę o nazwieEvaluateAsync
, która jest wywoływana za każdym razem, gdy zostanie obliczona flaga funkcji. WEvaluateAsync
systemie filtr funkcji włącza flagę funkcji, zwracając wartośćtrue
.Element został ozdobiony wartością
FilterAliasAttribute
RandomFilter
, aby nadać filtrowi alias Losowy, który jest zgodny z nazwą filtru ustawioną w flagi funkcji Beta w konfiguracji aplikacja systemu Azure.Otwórz plik Program.cs i zarejestruj
RandomFilter
go, wywołując metodęAddFeatureFilter
.// 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 // ... ...
Filtr funkcji w akcji
Uruchom ponownie aplikację i odśwież przeglądarkę kilka razy. Bez ręcznego przełączania flagi funkcji zobaczysz, że menu beta jest czasami wyświetlane, a czasami nie.
Następne kroki
Aby dowiedzieć się więcej na temat wbudowanych filtrów funkcji, przejdź do następujących dokumentów.
Aby uruchomić pełną funkcję biblioteki zarządzania funkcjami platformy .NET, przejdź do następującego dokumentu.