مشاركة عبر


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

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

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

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

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

في متجر App Configuration الخاص بك، تحتوي علامة الميزة التجريبية على عامل تصفية ميزات مخصص باسم Random. يحتوي هذا الفلتر على معلمة Percentage . لتنفيذ عامل تصفية الميزات، يمكنك تمكين علامة الميزة التجريبية استنادا إلى الفرصة المحددة بواسطة المعلمة Percentage .

  1. انتقل إلى المجلد الذي يحتوي على مشروع تطبيق ASP.NET Core من التشغيل السريع لإدارة الميزات المدرج في المتطلبات الأساسية.

  2. أضف ملف 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.

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

  3. افتح ملف Program.cs . قم بالتسجيل RandomFilter عن طريق إضافة استدعاء إلى الطريقة AddFeatureFilter ، كما هو موضح في التعليمات البرمجية التالية:

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

تطبيق عامل تصفية الميزات

  1. أنشئ تطبيقك باستخدام الأمر dotnet build . ثم قم بتشغيله باستخدام dotnet run.

  2. في إخراج dotnet run الأمر، ابحث عن عنوان URL يستمع إليه تطبيق الويب. افتح متصفحا وانتقل إلى عنوان URL هذا.

  3. قم بتحديث المتصفح عدة مرات. تظهر القائمة التجريبية أحيانا على صفحة ويب، وأحيانا لا تظهر على ذلك. لا يتم تشغيل علامة الميزة التجريبية وإيقاف تشغيلها يدويا. يحدث الاختلاف بسبب الرقم العشوائي الذي RandomFilter يولده التنفيذ EvaluateAsync عند تقييم علامة الميزة.

    لقطة شاشة لمتصفح مفتوح للمضيف المحلي: 7207. يشير النص الموجود على الصفحة إلى البيانات من تكوين تطبيق Azure. لا توجد قائمة بيتا مرئية.

    لقطة شاشة لمتصفح مفتوح للمضيف المحلي: 7207. يشير النص الموجود على الصفحة إلى البيانات من تكوين تطبيق Azure. يتم تمييز قائمة بيتا.

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

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

للحصول على ملخص الميزات الكامل لمكتبة إدارة ميزات .NET، تابع إلى المستند التالي: