Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Flagi funkcji mogą używać filtrów funkcji w celu warunkowego włączania funkcji. Aby uzyskać więcej informacji na temat filtrów funkcji, zobacz Włączanie funkcji warunkowych z filtrami funkcji.
W tym przewodniku pokazano, jak zaimplementować niestandardowy filtr funkcji w aplikacji ASP.NET Core i użyć filtru funkcji w celu warunkowego włączenia funkcji.
Wymagania wstępne
- Aplikacja ASP.NET Core z flagą funkcji Beta utworzoną podczas wykonywania kroków w przewodniku Szybki start: dodawanie flag funkcji do aplikacji ASP.NET Core. Ten przewodnik jest oparty na przewodniku Szybki start dotyczącym zarządzania funkcjami.
- Niestandardowy filtr funkcji o nazwie
Random, dodany do flagi funkcji beta w magazynie usługi Azure App Configuration. Aby uzyskać instrukcje, zobacz Dodawanie niestandardowego filtru funkcji.
Implementowanie niestandardowego filtru funkcji
W sklepie App Configuration flaga funkcji beta ma niestandardowy filtr funkcji o nazwie Random. Ten filtr ma Percentage parametr. Aby zaimplementować filtr funkcji, należy włączyć flagę funkcji beta na podstawie prawdopodobieństwa zdefiniowanego Percentage przez parametr .
Przejdź do folderu zawierającego projekt aplikacji ASP.NET Core z szybkim startem dotyczącym zarządzania funkcjami wymienionym w Wymagania wstępne.
Dodaj plik RandomFilter.cs zawierający następujący kod:
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); } } }Klasa
RandomFilterw poprzednim kodzie implementujeIFeatureFilterinterfejs zMicrosoft.FeatureManagementbiblioteki. InterfejsIFeatureFilterma jedną metodę o nazwieEvaluateAsync, która jest wywoływana za każdym razem, gdy zostanie obliczona flaga funkcji. WEvaluateAsyncsystemie filtr funkcji włącza flagę funkcji, zwracając wartośćtrue.W tym kodzie klasa
RandomFilterjest ozdobionaFilterAliasAttribute, co nadaje twojemu filtrowi aliasRandom. Ten alias pasuje do nazwy filtru w flagi funkcji beta w usłudze App Configuration.Otwórz plik Program.cs. Zarejestruj
RandomFilterdodając wywołanie metodyAddFeatureFilter, jak pokazano w poniższym kodzie:// 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 // ... ...
Stosowanie filtru funkcji
Utwórz aplikację przy użyciu polecenia
dotnet build. Następnie uruchom go przy użyciu poleceniadotnet run.W danych wyjściowych polecenia
dotnet runznajdź adres URL, na którym nasłuchuje aplikacja webowa. Otwórz przeglądarkę i przejdź do tego adresu URL.Odśwież przeglądarkę kilka razy. Menu beta czasami pojawia się na stronie internetowej, a czasami nie. Flaga funkcji beta nie jest ręcznie włączona i wyłączona. Zmiana jest spowodowana przez losową liczbę, którą generuje
RandomFilterimplementacjaEvaluateAsyncgdy oceniana jest flaga funkcji.
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: