RulesEngine — це бібліотека/пакет NuGet, який використовується для абстрагування бізнес-логіки/правил/політик із системи. Це може працювати дуже просто, дозволяючи зберігати правила поза основною логікою системи, гарантуючи, що будь-які зміни в правилах не впливають на основну систему.
Застосовні сценарії:
- Кількість типів введення та виведення є відносно фіксованою, але логіка виконання часто змінюється.
- Умови перемикача часто змінюються, і складні оператори перемикача замінюються;
- бізнес-логіку з кількома умовами або правилами, які змінюються;
- Сценарії, де свобода правила не вимагає особливо високих ступенів свободи. (У цьому випадку рекомендується скриптовий рушій)
Правила RulesEngine зберігаються в JSON, а правила (Rules) виражені лямбда-виразами.
Адреса GitHub:Вхід за гіперпосиланням видно.
Адреса документа:Вхід за гіперпосиланням видно.(Особисто я вважаю, що документація трохи розпливчаста, а деякі способи використання пояснені не надто чітко)
Спочатку створіть новий консольний проєкт .NET Core 3.1 і використайте команду nuget для встановлення пакету, наступним чином:
Створіть новий файл правил :Rules.json налаштуйте копіювати у вихідний каталог.
Конфігурація виглядає так:
Спробуйте запустити програму, і результат виглядає так:
Робочий процес customTest викличе нашу функцію C# для перевірки правил, зверніть увагу, що при створенні об'єкта RulesEngine потрібно додати ReSettings, щоб нормально виконувати метод C#.
Серед них,Валідаційні множини більш абстрактні для розуміння, використовуватиме localParams, ключове слово локальної змінної — localParams, що можна просто зрозуміти як var name = вираз
Повний код виглядає так:
Завантаження вихідного коду:
Туристи, якщо ви хочете побачити прихований контент цього допису, будь ласка Відповідь
|