Procurando por uma biblioteca simples de mecanismo de regras no .NET [fechado]
Alguém conhece uma boa biblioteca de regras de biblioteca .NET (de preferência código-fonte aberto)? Preciso de algo que possa fazer expressões lógicas aninhadas, por exemplo, (A AND B) AND (B OR C OR D). Preciso fazer comparações de propriedades de objetos, por exemplo, A.P1 AND B.P1. (Idealmente, eu poderia comparar qualquer propriedade - A.P1 AND B.P2).
Ele deve armazenar as regras em um banco de dados (eu tenho muita lógica configurável simples). E deve ter uma API de criação / gerenciamento de regras. A ferramenta de gerenciamento precisaria inspecionar as instâncias para determinar quais propriedades estão disponíveis e quais restrições existem.
Obrigado!
Oh, mais uma coisa. Como mecanismo de regras, preciso incluir o conceito de Ações (Comandos). É isso que é executado quando a expressão retorna:
If (expression.Evaluation) { actions.Execute(); }
Então, eu vejo uma regra como algo como:
class Rule
{
Expression Exp;
Actions[] Actions;
Run()
{
if(Exp.Evaluate())
{
foreach(action in Actions)
{
action.Execute();
}
}
}
}