RulesEngine은 비즈니스 로직/규칙/정책을 시스템에서 추상화하는 데 사용되는 라이브러리/NuGet 패키지입니다. 이 방법은 시스템의 핵심 논리 외부에 규칙을 저장할 수 있게 하여 규칙 변경이 핵심 시스템에 영향을 미치지 않도록 하는 매우 간단한 방식으로 작동할 수 있습니다.
적용 가능한 시나리오:
- 입력 및 출력 유형의 수는 비교적 고정되어 있지만, 실행 논리는 자주 변경됩니다.
- 스위치 조건은 자주 변하며, 복잡한 스위치 문은 교체됩니다;
- 여러 조건이나 규칙이 변경되는 비즈니스 로직;
- 규칙 자유가 특별히 높은 자유도를 요구하지 않는 시나리오입니다. (이 경우 스크립팅 엔진을 권장합니다)
RulesEngine의 규칙은 JSON 형식으로 저장되며, 규칙(Rules)은 람다 표현식으로 표현됩니다.
GitHub 주소:하이퍼링크 로그인이 보입니다.
문서 주소:하이퍼링크 로그인이 보입니다.(개인적으로는 문서가 다소 모호하고, 일부 사용법이 명확하게 설명되지 않은 것 같다고 생각합니다)
먼저, 새로운 .NET Core 3.1 콘솔 프로젝트를 만들고 nuget 명령어를 사용해 패키지를 설치하세요. 방법은 다음과 같습니다:
출력 디렉터리로 복사하도록 설정:Rules.json 새 규칙 파일을 만듭니다.
구성은 다음과 같습니다:
프로그램을 실행해 보면 출력은 다음과 같습니다:
customTest 워크플로우는 규칙을 검증하기 위해 C# 함수를 호출합니다. RulesEngine 객체를 인스턴스화할 때는 C# 메서드를 정상적으로 실행하려면 ReSet을 추가해야 합니다.
그중에는,검증 집합은 이해하기 더 추상적입니다는 localParams를 사용하며, local 변수의 키워드는 localParams로, 간단히 var name = expression으로 이해할 수 있습니다
전체 코드는 다음과 같습니다:
소스 코드 다운로드:
관광객 여러분, 이 게시물의 숨겨진 내용을 보고 싶으시다면 부탁드립니다 회답
|