Öğretici: ASP.NET Core uygulamasında özel filtre ile koşullu özellikleri etkinleştirme
Özellik bayrakları, özellikleri koşullu olarak etkinleştirmek için özellik filtrelerini kullanabilir. Özellik filtreleri hakkında daha fazla bilgi edinmek için bkz . Öğretici: Özellik filtreleri ile koşullu özellikleri etkinleştirme.
Bu öğreticide kullanılan örnek, özellik yönetimi hızlı başlangıcında tanıtılan ASP.NET Core uygulamasını temel alır. Devam etmeden önce, Beta özellik bayrağına sahip bir ASP.NET Core uygulaması oluşturmak için hızlı başlangıcı tamamlayın. Tamamlandıktan sonra, Uygulama Yapılandırması deponuzdaki Beta özellik bayrağına özel bir özellik filtresi eklemeniz gerekir.
Bu öğreticide, özel özellik filtresi uygulamayı ve özellikleri koşullu olarak etkinleştirmek için özellik filtresini kullanmayı öğreneceksiniz.
Önkoşullar
- Özellik bayrağıyla bir ASP.NET Core uygulaması oluşturun.
- Özellik bayrağına özel özellik filtresi ekleme
Özel özellik filtresi uygulama
Önkoşullarda Beta özellik bayrağınız için Yüzde parametresiyle Random adlı özel bir özellik filtresi eklediniz. Ardından, Yüzde parametresi tarafından tanımlanan şansa göre Beta özellik bayrağını etkinleştirmek için özellik filtresini uygulayacaksınız.
Aşağıdaki koda sahip bir
RandomFilter.cs
dosya ekleyin.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); } } }
Kitaplığından arabirimini uygulayan bir
RandomFilter
sınıf ekledinizMicrosoft.FeatureManagement
.IFeatureFilter
ArabirimIFeatureFilter
, bir özellik bayrağı her değerlendirildiğinde çağrılan adlıEvaluateAsync
tek bir yönteme sahiptir. içindeEvaluateAsync
, bir özellik filtresi döndürerektrue
özellik bayrağını etkinleştirir.filtrenize, Azure Uygulaması Yapılandırması'ndaki Beta özellik bayrağında ayarladığınız filtre adıyla eşleşen rastgele bir diğer ad vermek için öğesini olarak dekore
FilterAliasAttribute
RandomFilter
ettiniz.Program.cs dosyasını açın ve yöntemini çağırarak
AddFeatureFilter
dosyasını kaydedinRandomFilter
.// 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 // ... ...
Özellik filtresi çalışır durumda
Uygulamayı yeniden başlatın ve tarayıcıyı birkaç kez yenileyin. Özellik bayrağını el ile açmadan Beta menüsünün bazen göründüğünü ve bazen görünmediğini görürsünüz.
Sonraki adımlar
Yerleşik özellik filtreleri hakkında daha fazla bilgi edinmek için aşağıdaki öğreticilere geçin.
.NET özellik yönetimi kitaplığının tam özellik çalıştırması için aşağıdaki belgeye geçin.