Zelfstudie: Voorwaardelijke functies inschakelen met een aangepast filter in een ASP.NET Core-toepassing
Functievlagmen kunnen functiefilters gebruiken om functies voorwaardelijk in te schakelen. Zie Zelfstudie: Voorwaardelijke functies inschakelen met functiefilters voor meer informatie over functiefilters.
Het voorbeeld dat in deze zelfstudie wordt gebruikt, is gebaseerd op de ASP.NET Core-toepassing die is geïntroduceerd in de quickstart voor functiebeheer. Voordat u verdergaat, voltooit u de quickstart om een ASP.NET Core-toepassing te maken met een bètafunctievlag . Zodra dit is voltooid, moet u een aangepast functiefilter toevoegen aan de vlag Bèta-functie in uw App Configuration-archief.
In deze zelfstudie leert u hoe u een aangepast functiefilter implementeert en het functiefilter gebruikt om functies voorwaardelijk in te schakelen.
Vereisten
- Maak een ASP.NET Core-app met een functievlag.
- Een aangepast functiefilter toevoegen aan de functievlag
Een aangepast functiefilter implementeren
U hebt een aangepast functiefilter toegevoegd met de naam Random met een parameter Percentage voor de bèta-functievlag in de vereisten. Vervolgens implementeert u het functiefilter om de vlag Bèta-functie in te schakelen op basis van de kans die is gedefinieerd door de parameter Percentage .
Voeg een
RandomFilter.cs
bestand toe met de volgende code.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); } } }
U hebt een
RandomFilter
klasse toegevoegd waarmee deIFeatureFilter
interface uit deMicrosoft.FeatureManagement
bibliotheek wordt geïmplementeerd. DeIFeatureFilter
interface heeft één methode met de naamEvaluateAsync
, die wordt aangeroepen wanneer een functievlag wordt geëvalueerd. MetEvaluateAsync
een functiefilter wordt een functievlag ingeschakeld door terug te kerentrue
.U hebt een
FilterAliasAttribute
versie ingericht omRandomFilter
uw filter een alias Random te geven, die overeenkomt met de filternaam die u hebt ingesteld in de bètafunctievlag in Azure-app Configuratie.Open het Program.cs-bestand en registreer het
RandomFilter
door de methode aan teAddFeatureFilter
roepen.// 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 // ... ...
Functiefilter in actie
Start de toepassing opnieuw en vernieuw de browser een paar keer. Zonder handmatig de functievlag te wijzigen, ziet u dat het bètamenu soms wordt weergegeven en soms niet.
Volgende stappen
Ga verder met de volgende zelfstudies voor meer informatie over de ingebouwde functiefilters.
Ga verder naar het volgende document voor de volledige functierundown van de .NET-functiebeheerbibliotheek.