Кто-нибудь знает о хорошей библиотеке правил библиотеки .NET(в идеале с открытым исходным кодом)? Мне нужно что-то, что может выполнять вложенные логические выражения, например (A AND B) AND (B ИЛИ C ИЛИ D). Мне нужно выполнить сравнение свойств объекта, например, A.P1 AND B.P1. (В идеале я мог бы сравнить любое свойство - A.P1 AND B.P2).
Он должен хранить правила в базе данных (у меня есть много простой настраиваемой логики). И он должен иметь API создания правил/управления. Инструмент управления должен будет проверить экземпляры, чтобы определить, какие свойства доступны и какие существуют ограничения.
Спасибо!
О, еще одна вещь. В качестве механизма правил мне нужно включить концепцию Actions (Commands). Это то, что выполняется, когда выражение возвращает:
If (expression.Evaluation) {actions.Execute(); }
Итак, я вижу правило как-то вроде:
class Rule
{
Expression Exp;
Actions[] Actions;
Run() { if(Exp.Evaluate()) { foreach(action in Actions) { action.Execute() ; } } }
}