RulesEngine je knihovna/balíček NuGet používaný k abstrakci obchodní logiky/pravidel/politik ze systému. To může fungovat velmi jednoduše tím, že vám umožní umístit pravidla do úložiště mimo základní logiku systému, čímž zajistíte, že jakékoli změny pravidel neovlivní jádro systému.
Vhodné scénáře:
- Počet typů vstupů a výstupů je relativně pevný, ale logika provádění se často mění.
- podmínky přepínání se často mění a složité přepínací příkazy jsou nahrazeny;
- obchodní logika s více podmínkami nebo pravidly, která se budou měnit;
- Scénáře, kde svoboda pravidla nevyžaduje zvlášť vysoké stupně volnosti. (V tomto případě se doporučuje skriptovací engine)
Pravidla RulesEngine jsou uložena v JSON a pravidla (Rules) jsou vyjádřena v lambda výrazech.
Adresa GitHubu:Přihlášení k hypertextovému odkazu je viditelné.
Adresa dokumentu:Přihlášení k hypertextovému odkazu je viditelné.(Osobně mám pocit, že dokumentace je trochu vágní a některé použití není příliš jasně vysvětleno)
Nejprve vytvořte nový konzolový projekt .NET Core 3.1 a použijte příkaz nuget k instalaci balíčku, následovně:
Vytvořte nový soubor pravidel :Rules.json nastavený na kopírování do adresáře výstupů.
Konfigurace je následující:
Zkuste spustit program a výstup je následující:
Workflow customTest zavolá naši funkci C# k ověření pravidel, přičemž při instancování objektu RulesEngine musíme přidat ReSettings pro běžné spuštění naší C# metody.
Mezi nimi,Validační množiny jsou abstraktnější na pochopení, použije localParams, klíčové slovo lokální proměnné je localParams, což lze jednoduše chápat jako název var = výraz
Celý kód je následující:
Stažení zdrojového kódu:
Turisté, pokud chcete vidět skrytý obsah tohoto příspěvku, prosím Odpověď
|