다음과 같은 상황을 처리 할 수있는 엔진을 찾고 있습니다.간단한 규칙 엔진?
고객 개체가 첨부 된 주문 개체가 있습니다.
규칙 :
order.customer.id = 186의 경우 order.industry = 23 다음 order.price =
(100) 내가 NxBRE를 찾았지만이 잔인한 것 같다?
다른 사람들이 이와 같은 상황에 대해 무엇을하고 있습니까? 그냥 하드 코드하거나 Eval을 사용합니까?
다음과 같은 상황을 처리 할 수있는 엔진을 찾고 있습니다.간단한 규칙 엔진?
고객 개체가 첨부 된 주문 개체가 있습니다.
규칙 :
order.customer.id = 186의 경우 order.industry = 23 다음 order.price =
(100) 내가 NxBRE를 찾았지만이 잔인한 것 같다?
다른 사람들이 이와 같은 상황에 대해 무엇을하고 있습니까? 그냥 하드 코드하거나 Eval을 사용합니까?
약 2 년 전이 딜레마에 빠져 들었습니다. 충분히 단순하고 무언가 이상한 일이 아니었기 때문에 시간을 제한하면 맞춤 해석 로직을 사용하여 무언가를 만들었습니다. =,>, 등, 규칙 평가 엔진
의 기지로 Linq에 전략 패턴을 사용하여당신이 알고있는 경우 Windows 워크 플로 파운데이션, 그때 분명히 you can leverage its rules engine without having to actually use WF
나는 또한 비슷한 상황과 내 자신을 구축하는 생각을 가로 질러왔다 있지만 엔진을 사용하는 대신 현재의 논리를 변경하거나 새로운 근거로 진행할 때 큰 고통이 될 수 있기 때문입니다. 우리가 엔진의 작동 원리를 알게되면 어떤 논리와 최선의 방법으로도 개방적입니다. 우리는 지역 및 글로벌 최적을 찾기위한 솔루션을 구축 할 수 있습니다!
숟가락이 엔진을 공급하고 내 새 엔진을 만드는 데 도움이되는 링크를 아래에서 참조하십시오! 당신이 훨씬 간단 버전을 찾고 같은 코드를 작성하고자하는 경우
위대한 구현을 보인다. 나는 미래에 내 엔진을 향상시키기 위해 그것을 사용할지도 모른다. – Dib
...
[TestMethod]
public void GreaterThanRule_WhenGreater_ResultsTrue()
{
// ARRANGE
int threshold = 5;
int actual = 10;
// ACT
var integerRule = new IntegerGreaterThanRule();
integerRule.Initialize(threshold, actual);
var integerRuleEngine = new RuleEngine<int>();
integerRuleEngine.Add(integerRule);
var result = integerRuleEngine.MatchAll();
// ASSERT
Assert.IsTrue(result);
}
... 나 같은 ...
[TestMethod]
public void GreaterThanRule_WhenGreater_ResultsTrue()
{
// ARRANGE
int threshold = 5;
int actual = 10;
// ACT
var integerRule = new IntegerGreaterThanRule(threshold);
var integerRuleEngine = new RuleEngine<int>();
integerRuleEngine.ActualValue = actual;
integerRuleEngine.Add(integerRule);
// Get the result
var result = integerRuleEngine.MatchAll();
// ASSERT
Assert.IsTrue(result);
}
... 그러면 규칙 엔진을 천천히 구축하는 내 블로그를 체크 아웃 할 수 있습니다. http://www.duanewingett.info/2015/01/21/SimpleCRuleEnginePart1TheRuleEngine.aspx
방금 시도했습니다. 완벽한 솔루션처럼 보입니다! – Remy