Sdílet prostřednictvím


Povolení podmíněných funkcí pomocí vlastního filtru 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í naleznete v části Povolit podmíněné funkce pomocí filtrů funkcí.

V této příručce se dozvíte, jak implementovat vlastní filtr funkcí v aplikaci ASP.NET Core a použít filtr funkcí k podmíněnému povolení funkcí.

Požadavky

Implementace vlastního filtru funkcí

V Obchodě App Configuration má příznak funkce Beta vlastní filtr funkcí s názvem Random. Tento filtr má Percentage parametr. Pokud chcete implementovat filtr funkcí, povolíte příznak funkce Beta na základě pravděpodobnosti definované parametrem Percentage .

  1. V rychlém startu pro správu funkcí uvedených v části Požadavky přejděte do složky, která obsahuje projekt aplikace ASP.NET Core.

  2. Přidejte soubor RandomFilter.cs , který obsahuje následující kód:

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

    Třída RandomFilter v předchozím kódu 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.

    V tomto kódu je třída RandomFilter označená jako FilterAliasAttribute, který přiřazuje vašemu filtru alias Random. Tento alias odpovídá názvu filtru v příznaku funkce Beta v konfiguraci aplikace.

  3. Otevřete soubor Program.cs. Zaregistrujte RandomFilter přidáním volání metody AddFeatureFilter, jak ukazuje následující kód:

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

Použití filtru funkcí

  1. Sestavte aplikaci pomocí dotnet build příkazu. Pak spusťte pomocí dotnet run.

  2. Ve výstupu dotnet run příkazu vyhledejte adresu URL, na které webová aplikace naslouchá. Otevřete prohlížeč a přejděte na danou adresu URL.

  3. Několikrát aktualizujte prohlížeč. Nabídka Beta se někdy zobrazí na webové stránce, zatímco jindy nikoliv. Přepínač funkce Beta není ručně zapínán a vypínán. Variace je způsobená náhodným číslem, které RandomFilter při vyhodnocování příznaku funkce generuje implementace EvaluateAsync .

    Snímek obrazovky prohlížeče otevřeného pro localhost:7207 Text na stránce uvádí data z Azure App Configuration. Žádná nabídka Beta není viditelná.

    Snímek obrazovky prohlížeče otevřeného pro localhost:7207 Text na stránce uvádí data z Azure App Configuration. Nabídka Beta je zvýrazněná.

Další kroky

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

Úplný seznam funkcí knihovny pro správu funkcí .NET najdete v následujícím dokumentu: