RulesEngine er et bibliotek/NuGet-pakke, der bruges til at abstrahere forretningslogik/regler/politikker fra systemet. Dette kan fungere på en meget enkel måde ved at gøre det muligt for dig at placere regler i lagring uden for systemets kernelogik, så ændringer i reglerne ikke påvirker selve systemet.
Relevante scenarier:
- Antallet af input- og outputtyper er relativt fast, men eksekveringslogikken ændrer sig ofte.
- Switch-betingelser ændrer sig ofte, og komplekse switch-sætninger udskiftes;
- forretningslogik med flere betingelser eller regler, der vil ændre sig;
- Scenarier hvor regelfrihed ikke kræver særligt høje frihedsgrader. (I dette tilfælde anbefales en scripting-motor)
Reglerne for RulesEngine gemmes i JSON, og reglerne (reglerne) udtrykkes i lambda-udtryk.
GitHub-adresse:Hyperlink-login er synlig.
Dokumentadresse:Hyperlink-login er synlig.(Personligt synes jeg, at dokumentationen er lidt vag, og noget af brugen forklares ikke helt klart)
Først opretter du et nyt .NET Core 3.1 konsolprojekt og bruger nuget-kommandoen til at installere pakken, som følger:
Opret en ny regelfil :Rules.json sat til at kopiere til output-mappen.
Konfigurationen er som følger:
Prøv at køre programmet, og outputtet er som følger:
CustomTest-arbejdsgangen kalder vores C#-funktion for at validere reglerne, bemærk at når vi instansierer RulesEngine-objektet, skal vi tilføje ReSettings for at kunne udføre vores C#-metode normalt.
Blandt dem,Valideringssæt er mere abstrakte at forstå, vil bruge localParams, nøgleordet for den lokale variabel er localParams, hvilket enkelt kan forstås som var-navn = udtryk
Den fulde kode er som følger:
Kildekode-download:
Turister, hvis I vil se det skjulte indhold i dette indlæg, så vær venlig Svar
|