RulesEngine is een bibliotheek/NuGet-pakket dat wordt gebruikt om bedrijfslogica/regels/beleidsregels van het systeem te abstraheren. Dit kan op een heel eenvoudige manier werken door je in staat te stellen regels buiten de kernlogica van het systeem in opslag te plaatsen, zodat wijzigingen in de regels het kernsysteem niet beïnvloeden.
Toepasselijke scenario's:
- Het aantal invoer- en uitvoertypes is relatief vast, maar de uitvoeringslogica verandert vaak.
- Switchcondities veranderen vaak en complexe switchstatements worden vervangen;
- bedrijfslogica met meerdere voorwaarden of regels die zullen veranderen;
- Scenario's waarin de regel vrijheid niet bijzonder hoge vrijheidsgraden vereist. (In dit geval wordt een scripting-engine aanbevolen)
De regels van RulesEngine worden opgeslagen in JSON, en de regels (Regels) worden uitgedrukt in lambda-expressies.
GitHub-adres:De hyperlink-login is zichtbaar.
Documentadres:De hyperlink-login is zichtbaar.(Persoonlijk vind ik de documentatie wat vaag en wordt sommige toepassingen niet heel duidelijk uitgelegd)
Maak eerst een nieuw .NET Core 3.1 consoleproject aan en gebruik het nuget-commando om het pakket te installeren, als volgt:
Maak een nieuw regelbestand aan :Rules.json ingesteld om naar de uitvoermap te kopiëren.
De configuratie is als volgt:
Probeer het programma te draaien en de output is als volgt:
De customTest-workflow roept onze C#-functie aan om de regels te valideren; let op dat we bij het instantiëren van het RulesEngine-object ReSettings moeten toevoegen om onze C#-methode normaal uit te voeren.
Onder hen,Validatiesets zijn abstracter te begrijpen, localParams zal gebruiken, het sleutelwoord van de lokale variabele is localParams, wat eenvoudig kan worden opgevat als var-naam = expressie
De volledige code is als volgt:
Broncode downloaden:
Toeristen, als jullie de verborgen inhoud van dit bericht willen zien, alsjeblieft Antwoord
|