RulesEngine este un pachet de bibliotecă/NuGet folosit pentru a abstractiza logica de business/regulile/politicile din sistem. Acest lucru poate funcționa într-un mod foarte simplu, permițându-ți să plasezi regulile în stocare în afara logicii de bază a sistemului, asigurându-te că orice modificare a regulilor nu afectează sistemul de bază.
Scenarii aplicabile:
- Numărul tipurilor de intrare și ieșire este relativ fix, dar logica de execuție se schimbă frecvent.
- condițiile de comutare se schimbă frecvent, iar instrucțiunile complexe de comutare sunt înlocuite;
- logică de business cu multiple condiții sau reguli care se vor schimba;
- Scenarii în care libertatea de reguli nu necesită grade deosebit de ridicate de libertate. (În acest caz, este recomandat un motor de scripting)
Regulile RulesEngine sunt stocate în JSON, iar regulile (Regulile) sunt exprimate în expresii lambda.
Adresă GitHub:Autentificarea cu hyperlink este vizibilă.
Adresa documentului:Autentificarea cu hyperlink este vizibilă.(Personal, simt că documentația este puțin vagă și unele utilizări nu sunt explicate prea clar)
Mai întâi, creează un nou proiect de consolă .NET Core 3.1 și folosește comanda nuget pentru a instala pachetul, după cum urmează:
Creează un nou fișier de reguli :Rules.json setat să fie copiat în directorul de ieșire.
Configurația este următoarea:
Încearcă să rulezi programul și rezultatul este următorul:
Fluxul de lucru customTest va chema funcția noastră C# pentru a valida regulile, reține că atunci când instanțiem obiectul RulesEngine, trebuie să adăugăm ReSettings pentru a executa metoda noastră C# normal.
Dintre ei,Mulțimile de validare sunt mai abstracte de înțeles, va folosi localParams, cuvântul cheie al variabilei locale este localParams, care poate fi înțeles simplu ca var name = expresie
Codul complet este următorul:
Descărcare cod sursă:
Turiști, dacă vreți să vedeți conținutul ascuns al acestei postări, vă rog Răspunde
|