Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A funkciójelzők funkciószűrőkkel feltételesen engedélyezhetik a funkciókat. A funkciószűrőkkel kapcsolatos további információkért lásd: Feltételes szolgáltatások engedélyezése funkciószűrőkkel.
Ez az útmutató bemutatja, hogyan implementálhat egyéni funkciószűrőt egy ASP.NET Core-alkalmazásban, és hogyan használhatja a funkciószűrőt a szolgáltatások feltételes engedélyezéséhez.
Előfeltételek
- Az ASP.NET Core-alkalmazás, amely bétaverziós funkciójelzővel rendelkezik, és amelyet létrehoz a Quickstart útmutató lépéseinek végrehajtásával: Funkciójelölők hozzáadása egy ASP.NET Core-alkalmazáshoz. Ez az útmutató erre a szolgáltatásfelügyeleti rövid útmutatóra épül.
- A
Randomegyéni szolgáltatásszűrő hozzáadva az Azure App Configuration Store szolgáltatásokhoz tartozó Béta jelzőjéhez. Útmutatásért lásd: Egyéni funkciószűrő hozzáadása.
Egyéni funkciószűrő implementálása
Az App Configuration áruházban a Beta funkciójelző egy egyéni funkciószűrővel rendelkezik Random. Ennek a szűrőnek van egy Percentage paramétere. A funkciószűrő implementálásához a paraméter által meghatározott lehetőség alapján engedélyezi a Percentage funkciójelzőjét.
Nyissa meg a ASP.NET Core-alkalmazásprojektet tartalmazó mappát az Előfeltételek listában felsorolt szolgáltatásfelügyeleti rövid útmutatóból.
Adjon hozzá egy RandomFilter.cs fájlt, amely a következő kódot tartalmazza:
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); } } }A
RandomFilterosztály a fenti kódban implementálja aIFeatureFilterinterfészt aMicrosoft.FeatureManagementkönyvtárból. AzIFeatureFilterinterfésznek egyetlen metódusa van,EvaluateAsyncamelyet a rendszer a funkciójelző kiértékelésekor hív meg. AEvaluateAsyncfunkciószűrők a visszatéréssel engedélyezik a funkciójelzőttrue.Ebben a kódban a
RandomFilterosztálytFilterAliasAttribute-mal dekorálják, amely megadja a szűrő aliasátRandom. Ez az alias megegyezik az Alkalmazáskonfiguráció bétafunkció-jelölőjének szűrőnevével.Nyissa meg a Program.cs fájlt. Regisztráljon
RandomFilterúgy, hogy hozzáad egy hívást aAddFeatureFiltermetódushoz, ahogy az a következő kódban is látható:// 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 // ... ...
A funkciószűrő alkalmazása
Hozza létre az alkalmazást a
dotnet buildparancs használatával. Ezután futtassa adotnet runsegítségével.A parancs kimenetében keresse meg a
dotnet runwebalkalmazás által figyelt URL-címet. Nyisson meg egy böngészőt, és nyissa meg az URL-címet.Frissítse a böngészőt néhányszor. A Béta menü néha megjelenik a weblapon, és néha nem. A bétaverzió funkciójelzője nincs manuálisan be- és kikapcsolva. A variációt az a véletlenszerű szám okozza, amelyet a rendszer a
RandomFilterEvaluateAsyncfunkciójelző kiértékelésekor generál.
Következő lépések
A beépített funkciószűrőkről a következő dokumentumokban olvashat bővebben:
A .NET funkciókezelési könyvtár teljes funkciók áttekintéséhez folytassa a következő dokumentummal: