RulesEngine ist ein Bibliotheks-/NuGet-Paket, das verwendet wird, um Geschäftslogik/Regeln/Richtlinien vom System abzustrahieren. Das kann sehr einfach funktionieren, indem es Ihnen ermöglicht, Regeln außerhalb der Kernlogik des Systems im Speicher zu speichern und sicherzustellen, dass Änderungen an den Regeln das Kernsystem nicht beeinträchtigen.
Anwendbare Szenarien:
- Die Anzahl der Eingabe- und Ausgabetypen ist relativ fest, aber die Ausführungslogik ändert sich häufig.
- Schaltbedingungen ändern sich häufig, und komplexe Schaltanweisungen werden ersetzt;
- Geschäftslogik mit mehreren Bedingungen oder Regeln, die sich ändern werden;
- Szenarien, in denen die Regelfreiheit keine besonders hohen Freiheitsgrade erfordert. (In diesem Fall wird eine Skript-Engine empfohlen.)
Die Regeln von RulesEngine werden in JSON gespeichert, und die Regeln (Regeln) werden in Lambda-Ausdrücken ausgedrückt.
GitHub-Adresse:Der Hyperlink-Login ist sichtbar.
Dokumentadresse:Der Hyperlink-Login ist sichtbar.(Ich persönlich finde, dass die Dokumentation etwas vage ist und einige Verwendungen nicht sehr klar erklärt werden.)
Erstellen Sie zunächst ein neues .NET Core 3.1-Konsolenprojekt und verwenden Sie den Nuget-Befehl, um das Paket wie folgt zu installieren:
Erstelle eine neue Regeldatei :Rules.json so eingestellt, dass sie in das Ausgabeverzeichnis kopiert wird.
Die Konfiguration ist wie folgt:
Versuchen Sie, das Programm auszuführen, und die Ausgabe ist wie folgt:
Der CustomTest-Workflow ruft unsere C#-Funktion auf, um die Regeln zu validieren; beachten Sie, dass wir beim Instanziieren des RulesEngine-Objekts ReSettings hinzufügen müssen, um unsere C#-Methode normal auszuführen.
Unter ihnen,Validierungsmengen sind abstrakter zu verstehen, wird localParams verwenden, das Schlüsselwort der lokalen Variablen ist localParams, was einfach als var, Name = Ausdruck verstanden werden kann
Der vollständige Code lautet wie folgt:
Quellcode-Download:
Touristen, wenn ihr den versteckten Inhalt dieses Beitrags sehen wollt, bitte Antwort
|