Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
I flag di funzionalità possono usare filtri di funzionalità per abilitare le funzionalità in modo condizionale. Per altre informazioni sui filtri delle funzionalità, vedere Abilitare le funzionalità condizionali con i filtri delle funzionalità.
Questa guida illustra come implementare un filtro di funzionalità personalizzato in un'applicazione ASP.NET Core e usare il filtro delle funzionalità per abilitare le funzionalità in modo condizionale.
Prerequisiti
- L'applicazione ASP.NET Core con un flag di funzionalità beta creato al termine della procedura descritta in Avvio rapido: Aggiungere flag di funzionalità a un'app ASP.NET Core. Questa guida si basa su quella guida rapida alla gestione delle funzionalità.
- Un filtro di funzionalità personalizzato denominato
Random, aggiunto al segnaposto di funzionalità Beta nell'archivio di configurazione delle app di Azure. Per istruzioni, vedere Aggiungere un filtro di funzionalità personalizzato.
Implementare un filtro di funzionalità personalizzato
Nel negozio di configurazione dell'applicazione, il flag di funzionalità Beta ha un filtro di funzionalità personalizzato denominato Random. Tale filtro ha un Percentage parametro . Per implementare il filtro delle funzionalità, abilitare il flag di funzionalità Beta in base alla probabilità definita dal Percentage parametro .
Passare alla cartella contenente il progetto di applicazione ASP.NET Core della guida introduttiva alla gestione delle funzionalità elencata in Prerequisiti.
Aggiungere un file RandomFilter.cs contenente il codice seguente:
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); } } }La
RandomFilterclasse nel codice precedente implementa l'interfacciaIFeatureFilterdallaMicrosoft.FeatureManagementlibreria. L’interfacciaIFeatureFilterha un singolo metodo denominatoEvaluateAsync, che viene chiamato ogni volta che viene valutato un flag di funzionalità. InEvaluateAsync, un filtro di funzionalità abilita un flag di funzionalità restituendotrue.In questo codice la
RandomFilterclasse è decorata conFilterAliasAttribute, che fornisce al filtro l'aliasRandom. Tale alias corrisponde al nome del filtro nel flag di funzionalità Beta in Configurazione app.Aprire il file Program.cs. Registrare
RandomFilteraggiungendo una chiamata al metodoAddFeatureFilter, come illustrato nel codice seguente:// 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 // ... ...
Applicare il filtro delle funzionalità
Compilare l'app usando il
dotnet buildcomando . Quindi eseguilo usandodotnet run.Nell'output del comando
dotnet runtrovare un URL su cui sta ascoltando l'app Web. Aprire un browser e passare a tale URL.Aggiornare alcune volte il browser. Il menu Beta a volte viene visualizzato nella pagina Web e a volte non lo fa. Il flag di funzionalità beta non viene attivato e disattivato manualmente. La variazione è causata dal numero casuale generato dall'implementazione
RandomFilterdiEvaluateAsyncquando viene valutato il flag di funzionalità.
Passaggi successivi
Per altre informazioni sui filtri di funzionalità predefiniti, continuare con i documenti seguenti:
Per il rundown completo delle funzionalità della libreria di gestione delle funzionalità .NET, continuare con il documento seguente: