RulesEngine er et bibliotek/NuGet-pakke som brukes til å abstrahere forretningslogikk/regler/policyer fra systemet. Dette kan fungere på en veldig enkel måte ved å la deg plassere regler i lagring utenfor systemets kjernelogikk, slik at endringer i reglene ikke påvirker kjernesystemet.
Relevante scenarier:
- Antallet inn- og utdatatyper er relativt fast, men utførelseslogikken endres ofte.
- Switch-forholdene endres ofte, og komplekse switch-setninger blir erstattet;
- forretningslogikk med flere betingelser eller regler som vil endres;
- Situasjoner hvor regelfrihet ikke krever spesielt høye frihetsgrader. (I dette tilfellet anbefales en skriptmotor)
Reglene i RulesEngine lagres i JSON, og reglene (reglene) uttrykkes i lambda-uttrykk.
GitHub-adresse:Innloggingen med hyperkoblingen er synlig.
Dokumentadresse:Innloggingen med hyperkoblingen er synlig.(Personlig synes jeg dokumentasjonen er litt vag, og noe av bruken forklares ikke så tydelig)
Først oppretter du et nytt .NET Core 3.1-konsollprosjekt og bruker nuget-kommandoen for å installere pakken, som følger:
Opprett en ny regelfil :Rules.json satt til å kopieres til utdatakatalogen.
Konfigurasjonen er som følger:
Prøv å kjøre programmet, og resultatet er som følger:
CustomTest-arbeidsflyten vil kalle vår C#-funksjon for å validere reglene, merk at når vi instansierer RulesEngine-objektet, må vi legge til ReSettings for å kjøre C#-metoden normalt.
Blant dem,Valideringssett er mer abstrakte å forstå, vil bruke localParams, nøkkelordet til den lokale variabelen er localParams, som enkelt kan forstås som var-navn = uttrykk
Den fullstendige koden er som følger:
Nedlasting av kildekode:
Turister, hvis dere vil se det skjulte innholdet i dette innlegget, vær så snill Svare
|