Kurz: Povolení podmíněných funkcí s vlastním filtrem v aplikaci ASP.NET Core

Příznaky funkcí můžou používat filtry funkcí k podmíněnému povolení funkcí. Další informace o filtrech funkcí najdete v tématu Kurz: Povolení podmíněných funkcí pomocí filtrů funkcí.

Příklad použitý v tomto kurzu vychází z aplikace ASP.NET Core představené v rychlém startu pro správu funkcí. Než budete pokračovat, dokončete rychlý start a vytvořte aplikaci ASP.NET Core s příznakem funkce Beta . Po dokončení musíte přidat vlastní filtr funkcí do příznaku funkce Beta v Obchodě App Configuration Store.

V tomto kurzu se dozvíte, jak implementovat vlastní filtr funkcí a použít filtr funkcí k podmíněnému povolení funkcí.

Požadavky

Implementace vlastního filtru funkcí

Přidali jste vlastní filtr funkcí s názvem Random s parametrem Percentage pro příznak funkce Beta v požadavcích. Dále implementujete filtr funkcí, který povolí příznak funkce Beta na základě pravděpodobnosti definované parametrem Procento .

  1. RandomFilter.cs Přidejte soubor s následujícím kódem.

    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);
            }
        }
    }
    

    Přidali RandomFilter jste třídu, která implementuje IFeatureFilter rozhraní z Microsoft.FeatureManagement knihovny. Rozhraní IFeatureFilter má jednu metodu s názvem EvaluateAsync, která se volá při každém vyhodnocení příznaku funkce. V EvaluateAsync, filtr funkce umožňuje příznak funkce vrácením true.

    Přizdobili FilterAliasAttribute jste filtr RandomFilter tak, aby byl alias náhodný, který odpovídá názvu filtru, který jste nastavili v příznaku funkce Beta v konfiguraci Aplikace Azure.

  2. Otevřete soubor Program.cs a zaregistrujte voláním RandomFilterAddFeatureFilter metody.

    // 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 funkcí v akci

Znovu spusťte aplikaci a několikrát aktualizujte prohlížeč. Bez ručního přepnutí příznaku funkce uvidíte, že se nabídka Beta někdy zobrazí a někdy ne.

Snímek obrazovky prohlížeče se skrytými nabídkami Beta

Snímek obrazovky prohlížeče s nabídkou Beta

Další kroky

Další informace o předdefinovaných filtrech funkcí najdete v následujících kurzech.