RulesEngine je knižnica/balík NuGet používaný na abstrakciu obchodnej logiky/pravidiel/politík zo systému. To môže fungovať veľmi jednoducho tým, že vám umožní ukladať pravidlá do úložiska mimo základnej logiky systému, čím sa zabezpečí, že akékoľvek zmeny pravidiel neovplyvnia jadrový systém.
Použiteľné scenáre:
- Počet vstupných a výstupných typov je relatívne pevný, ale logika vykonávania sa často mení.
- podmienky prepínania sa často menia a zložité príkazy prepínania sa nahrádzajú;
- obchodná logika s viacerými podmienkami alebo pravidlami, ktoré sa menia;
- Scenáre, kde sloboda pravidla nevyžaduje obzvlášť vysoké stupne voľnosti. (V takom prípade sa odporúča skriptovací engine)
Pravidlá RulesEngine sú uložené v JSON a pravidlá (Rules) sú vyjadrené v lambda výrazoch.
GitHub adresa:Prihlásenie na hypertextový odkaz je viditeľné.
Adresa dokumentu:Prihlásenie na hypertextový odkaz je viditeľné.(Osobne mám pocit, že dokumentácia je trochu nejasná a niektoré použitia nie sú dostatočne jasne vysvetlené)
Najprv vytvorte nový .NET Core 3.1 konzolový projekt a použite príkaz nuget na inštaláciu balíka, nasledovne:
Vytvorte nový pravidlový súbor :Rules.json nastavený na kopírovanie do výstupného adresára.
Konfigurácia je nasledovná:
Skúste spustiť program a výstup je nasledovný:
Workflow customTest zavolá našu funkciu C# na overenie pravidiel, pričom pri inštancovaní objektu RulesEngine musíme pridať ReSettings na normálne spustenie C# metódy.
Medzi nimi,Validačné množiny sú abstraktnejšie na pochopenie, použije localParams, kľúčové slovo lokálnej premennej je localParams, čo možno jednoducho pochopiť ako názov var = výraz
Celý kód je nasledovný:
Stiahnutie zdrojového kódu:
Turisti, ak chcete vidieť skrytý obsah tohto príspevku, prosím. Odpoveď
|