RulesEngine on kirjasto/NuGet-paketti, jota käytetään liiketoimintalogiikan/sääntöjen/politiikkojen abstrahoimiseen järjestelmästä. Tämä voi toimia hyvin yksinkertaisesti mahdollistamalla sääntöjen sijoittamisen tallennustilaan järjestelmän ydinlogiikan ulkopuolelle, varmistaen, ettei sääntöjen muutokset vaikuta ydinjärjestelmään.
Sovellettavat skenaariot:
- Syöte- ja lähtötyyppien määrä on suhteellisen kiinteä, mutta suorituslogiikka muuttuu usein.
- kytkimen ehdot muuttuvat usein ja monimutkaiset kytkinlauseet korvataan;
- liiketoimintalogiikkaa, jossa on useita ehtoja tai sääntöjä, jotka muuttuvat;
- Tilanteita, joissa sääntövapaus ei vaadi erityisen suuria vapauksia. (Tässä tapauksessa suositellaan skriptausmoottoria)
RulesEnginen säännöt tallennetaan JSONiin, ja säännöt (Säännöt) ilmaistaan lambda-lausekkeina.
GitHub-osoite:Hyperlinkin kirjautuminen on näkyvissä.
Asiakirjan osoite:Hyperlinkin kirjautuminen on näkyvissä.(Itse koen, että dokumentaatio on hieman epämääräistä, ja osa käytöstä ei ole selvästi selitetty)
Luo ensin uusi .NET Core 3.1 -konsoliprojekti ja käytä nuget-komentoa paketin asentamiseen seuraavasti:
Luo uusi sääntötiedosto :Rules.json aseta kopioimaan tulostiedostoon.
Konfiguraatio on seuraava:
Kokeile suorittaa ohjelma ja tulos on seuraava:
CustomTest-työnkulku kutsuu C#-funktiota sääntöjen validointiin, huomaa, että RulesEngine-objektin käyttöönoton yhteydessä meidän täytyy lisätä ReSettings, jotta C#-metodi suoritetaan normaalisti.
Niiden joukossa,Validointijoukot ovat abstraktempia ymmärtää, käyttää localParams, paikallisen muuttujan avainsana on localParams, joka voidaan yksinkertaisesti ymmärtää var-nimi = lauseke
Koko koodi on seuraava:
Lähdekoodin lataus:
Turistit, jos haluatte nähdä tämän postauksen piilotetun sisällön, olkaa hyvä Vastaus
|