Öğ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

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

  1. 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 Arabirim IFeatureFilter , bir özellik bayrağı her değerlendirildiğinde çağrılan adlı EvaluateAsynctek bir yönteme sahiptir. içinde EvaluateAsync, bir özellik filtresi döndürerek trueö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.

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

Beta menüsü gizli olan tarayıcının ekran görüntüsü.

Beta menüsüne sahip tarayıcının ekran görüntüsü.

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.