Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Functievlagmen kunnen functiefilters gebruiken om functies voorwaardelijk in te schakelen. Zie Voorwaardelijke functies inschakelen met functiefilters voor meer informatie over functiefilters.
Deze handleiding laat zien hoe u een aangepast functiefilter implementeert in een ASP.NET Core-toepassing en hoe u het functiefilter gebruikt om functies voorwaardelijk in te schakelen.
Vereisten
- De ASP.NET Core-toepassing met een bètafunctievlag die u maakt wanneer u de stappen in quickstart voltooit: functievlagmen toevoegen aan een ASP.NET Core-app. Deze handleiding bouwt voort op de snelle startgids voor functiebeheer.
- Een aangepast functiefilter met de naam
Random, toegevoegd aan de bèta-functievlag in uw Azure App Configuration-archief. Zie Een aangepast functiefilter toevoegen voor instructies.
Een aangepast functiefilter implementeren
In uw App Configuration-archief heeft de Bèta-functievlag een aangepast functiefilter met de naam Random. Dat filter heeft een Percentage parameter. Als u het functiefilter wilt implementeren, schakelt u de vlag Bèta-functie in op basis van de kans die is gedefinieerd door de Percentage parameter.
Ga naar de map met het ASP.NET Core-toepassingsproject uit de quickstart voor functiebeheer die wordt vermeld in Vereisten.
Voeg een RandomFilter.cs-bestand toe dat de volgende code bevat:
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); } } }De
RandomFilterklasse in de voorgaande code implementeert deIFeatureFilterinterface uit deMicrosoft.FeatureManagementbibliotheek. DeIFeatureFilterinterface heeft één methode met de naamEvaluateAsync, die wordt aangeroepen wanneer een functievlag wordt geëvalueerd. MetEvaluateAsynceen functiefilter wordt een functievlag ingeschakeld door terug te kerentrue.In deze code is de
RandomFilterklasse ingericht metFilterAliasAttribute, waardoor uw filter de aliasRandomkrijgt. Deze alias komt overeen met de filternaam in de vlag Bètafunctie in App Configuration.Open het Program.cs-bestand. Registreer u
RandomFilterdoor een aanroep toe te voegen aan deAddFeatureFiltermethode, zoals wordt weergegeven in de volgende code:// 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 // ... ...
Het functiefilter toepassen
Bouw uw app met behulp van de
dotnet buildopdracht. Voer het vervolgens uit met behulp vandotnet run.Zoek in de uitvoer van de
dotnet runopdracht een URL waarop de web-app luistert. Open een browser en ga naar die URL.Vernieuw de browser een paar keer. Het bètamenu wordt soms weergegeven op de webpagina en soms niet. De bètafunctievlag wordt niet handmatig ingeschakeld en uitgeschakeld. De variatie wordt veroorzaakt door het willekeurige getal dat de
RandomFilterimplementatie vanEvaluateAsyncgenereert wanneer de feature flag wordt geëvalueerd.
Volgende stappen
Ga verder met de volgende documenten voor meer informatie over ingebouwde functiefilters:
Ga naar het volgende document voor de volledige functierundown van de .NET-functiebeheerbibliotheek: