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