A RulesEngine egy könyvtár/NuGet csomag, amelyet üzleti logika/szabályok/szabályzatok elvonására használnak a rendszerből. Ez nagyon egyszerű módon működhet, amikor lehetővé teszi, hogy a szabályokat a rendszer maglogikáján kívül tárolj, így a szabályok módosítása nem érinti a magrendszert.
Alkalmazható forgatókönyvek:
- A bemeneti és kimeneti típusok száma viszonylag fix, de a végrehajtási logika gyakran változik.
- A kapcsolófeltételek gyakran változnak, és a komplex kapcsoló állítások felváltódnak;
- üzleti logikával, amelyek többféle feltétellel vagy szabálysal változnak;
- Olyan helyzetek, ahol a szabályszabadság nem igényel különösebben magas szabadságfokokat. (Ebben az esetben egy scripting motor ajánlott)
A RulesEngine szabályai JSON-ban vannak tárolva, a szabályok (Rules) pedig lambda kifejezésekben vannak kifejezve.
GitHub cím:A hiperlink bejelentkezés látható.
Dokumentum címe:A hiperlink bejelentkezés látható.(Személy szerint úgy érzem, hogy a dokumentáció kissé homályos, és néhány használat nincs túl világosan elmagyarázva)
Először hozz létre egy új .NET Core 3.1 konzolprojektet, és a nuget parancsot használjuk a csomag telepítéséhez, az alábbiak szerint:
Hozz létre egy új szabályfájlt:Rules.json hogy másolj a kimeneti könyvtárba.
A konfiguráció a következő:
Próbáld meg futtatni a programot, és a kimenet a következő:
A customTest munkafolyamat a C# függvényt hívja a szabályok érvényesítéséhez, fontos megjegyezni, hogy a RulesEngine objektum bevezetésekor ReSettings hozzáadni kell a C# módszerünk normál végrehajtásához.
Közöttük,Az érvényesítési halmazok megértése absztraktabb, localParams használ, a helyi változó kulcskulcsszavaja localParams, amely egyszerűen úgy érthető: var név = kifejezés
A teljes kód a következő:
Forráskód letöltés:
Turisták, ha szeretnétek megnézni ennek a bejegyzésnek a rejtett tartalmát, kérlek Válasz
|