اقرأ باللغة الإنجليزية

مشاركة عبر


تمكين الميزات الشرطية باستخدام عامل تصفية مخصص في تطبيق ASP.NET Core

يمكن أن تستخدم علامات الميزات عوامل تصفية الميزات لتمكين الميزات بشكل مشروط. لمعرفة المزيد حول عوامل تصفية الميزات، راجع تمكين الميزات الشرطية باستخدام عوامل تصفية الميزات.

يستند المثال المستخدم في هذا الدليل إلى تطبيق ASP.NET Core المقدم في التشغيل السريع لإدارة الميزات. قبل المتابعة، أكمل التشغيل السريع لإنشاء تطبيق ASP.NET Core مع علامة ميزة Beta . بمجرد الانتهاء، يجب إضافة عامل تصفية ميزة مخصص إلى علامة ميزة Beta في متجر App Configuration.

في هذا الدليل، ستتعلم كيفية تنفيذ عامل تصفية ميزة مخصص واستخدام عامل تصفية الميزة لتمكين الميزات بشكل مشروط.

المتطلبات الأساسية

تنفيذ عامل تصفية ميزة مخصص

لقد أضفت عامل تصفية ميزة مخصصا يسمى Random مع معلمة النسبة المئوية لعلامة ميزة Beta في المتطلبات الأساسية. بعد ذلك، ستقوم بتنفيذ عامل تصفية الميزة لتمكين علامة ميزة Beta استنادا إلى الفرصة المحددة بواسطة معلمة النسبة المئوية .

  1. أضف ملفا RandomFilter.cs باستخدام التعليمات البرمجية التالية.

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

    لقد أضفت RandomFilter فئة تنفذ الواجهة IFeatureFilter من المكتبة Microsoft.FeatureManagement . تحتوي الواجهة IFeatureFilter على أسلوب واحد يسمى EvaluateAsync، والذي يتم استدعاؤه كلما تم تقييم علامة ميزة. في EvaluateAsync، يمكن عامل تصفية الميزة علامة ميزة عن طريق إرجاع true.

    لقد قمت بتزيين FilterAliasAttribute إلى لمنح عامل التصفية RandomFilter اسما مستعارا عشوائيا، والذي يطابق اسم عامل التصفية الذي قمت بتعيينه في علامة ميزة بيتا في تكوين تطبيق Azure.

  2. افتح ملف Program.cs وسجل RandomFilter عن طريق استدعاء AddFeatureFilter الأسلوب .

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

عامل تصفية الميزة قيد التنفيذ

أعد تشغيل التطبيق وحدث المتصفح عدة مرات. دون تبديل علامة الميزة يدويا، سترى أن القائمة بيتا تظهر في بعض الأحيان وأحيانا لا تظهر.

لقطة شاشة للمستعرض مع إخفاء قائمة Beta.

لقطة شاشة للمستعرض مع قائمة Beta.

الخطوات التالية

لمعرفة المزيد حول عوامل تصفية الميزات المضمنة، تابع إلى المستندات التالية.

للتشغيل الكامل للميزة لمكتبة إدارة ميزات .NET، تابع إلى المستند التالي.