RulesEngine è un pacchetto di librerie/NuGet utilizzato per astrarre logica aziendale/regole/policy dal sistema. Questo può funzionare in modo molto semplice, permettendoti di mettere le regole in archiviazione al di fuori della logica centrale del sistema, assicurandoti che eventuali modifiche alle regole non influenzino il sistema centrale.
Scenari applicabili:
- Il numero di tipi di input e output è relativamente fisso, ma la logica di esecuzione cambia frequentemente.
- le condizioni di commutazione cambiano frequentemente e vengono sostituite istruzioni complesse di commutazione;
- logica di business con molteplici condizioni o regole che cambieranno;
- Scenari in cui la libertà di regole non richiede gradi particolarmente elevati di libertà. (In questo caso, si consiglia un motore di scripting)
Le regole di RulesEngine sono memorizzate in JSON e le regole (Regole) sono espresse in espressioni lambda.
Indirizzo GitHub:Il login del link ipertestuale è visibile.
Indirizzo del documento:Il login del link ipertestuale è visibile.(Personalmente penso che la documentazione sia un po' vaga e alcuni usi non sono spiegati in modo chiaro)
Per prima cosa, crea un nuovo progetto console .NET Core 3.1 e usa il comando nuget per installare il pacchetto, come segue:
Crea un nuovo file di regole :Rules.json imposta per copiare nella cartella di output.
La configurazione è la seguente:
Prova a eseguire il programma e l'output è il seguente:
Il workflow customTest chiamerà la nostra funzione C# per validare le regole; nota che quando si istanzia l'oggetto RulesEngine, dobbiamo aggiungere ReSettings per eseguire normalmente il nostro metodo C#.
Tra questi,Gli insiemi di validazione sono più astratti da comprendere, userà localParams, la parola chiave della variabile locale è localParams, che può essere semplicemente intesa come var name = espressione
Il codice completo è il seguente:
Scarica codice sorgente:
Turisti, se volete vedere il contenuto nascosto di questo post, vi prego Risposta
|