Share via


Självstudie: Aktivera villkorsstyrda funktioner med ett anpassat filter i ett ASP.NET Core-program

Funktionsflaggor kan använda funktionsfilter för att aktivera funktioner villkorligt. Mer information om funktionsfilter finns i Självstudie: Aktivera villkorsstyrda funktioner med funktionsfilter.

Exemplet som används i den här självstudien baseras på ASP.NET Core-programmet som introducerades i snabbstarten för funktionshantering. Innan du fortsätter kan du slutföra snabbstarten för att skapa ett ASP.NET Core-program med en betafunktionsflagga . När du är klar måste du lägga till ett anpassat funktionsfilter i betafunktionsflaggan i appkonfigurationsarkivet.

I den här självstudien får du lära dig hur du implementerar ett anpassat funktionsfilter och använder funktionsfiltret för att aktivera funktioner villkorligt.

Förutsättningar

Implementera ett anpassat funktionsfilter

Du har lagt till ett anpassat funktionsfilter med namnet Random med en procentparameter för din Beta-funktionsflagga i förutsättningarna. Därefter implementerar du funktionsfiltret för att aktivera betafunktionsflaggan baserat på den chans som definieras av parametern Procent .

  1. Lägg till en RandomFilter.cs fil med följande 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);
            }
        }
    }
    

    Du har lagt till en RandomFilter klass som implementerar IFeatureFilter gränssnittet från Microsoft.FeatureManagement biblioteket. Gränssnittet IFeatureFilter har en enda metod med namnet EvaluateAsync, som anropas när en funktionsflagga utvärderas. I EvaluateAsyncaktiverar ett funktionsfilter en funktionsflagga genom att truereturnera .

    Du har dekorerat ett FilterAliasAttribute till RandomFilter för att ge filtret ett alias Slumpmässigt, vilket matchar filternamnet som du angav i funktionsflaggan Beta i Azure App Configuration.

  2. Öppna filen Program.cs och registrera RandomFilter genom att anropa AddFeatureFilter metoden.

    // 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
    // ... ...
    

Funktionsfilter i praktiken

Starta om programmet och uppdatera webbläsaren några gånger. Utan att manuellt växla funktionsflaggan ser du att Beta-menyn ibland visas och ibland inte.

Skärmbild av webbläsaren med betamenyn dold.

Skärmbild av webbläsaren med Beta-menyn.

Nästa steg

Om du vill veta mer om de inbyggda funktionsfiltren fortsätter du till följande självstudier.