title: Looking for simple rules-engine library in .NET
body: <p>Does anyone know of a good .NET library rules library (ideally open-source)?  I need something that can do nested logic expressions, e.g., (A AND B) AND (B OR C OR D).  I need to do comparisons of object properties, e.g., A.P1 AND B.P1.  (Ideally, I could compare any property -- A.P1 AND B.P2).  </p>
  
  <p>It should store the rules in a database (I've got a lot of simple configurable logic).  And it should have a rule creation/management API.  The management tool would have to inspect the instances to determine which properties are available and which constraints exist.  </p>
  
  <p>Thanks!</p>
  
  <hr>
  
  <p>Oh, one more thing.  As a rules-engine, I need to include the concept of Actions (Commands).  These are what execute when the expression returns:</p>
  
  <pre><code>If (expression.Evaluation) { actions.Execute(); }
  </code></pre>
  
  <p>So I see a rule as something like:</p>
  
  <pre><code>class Rule
  {
      Expression Exp;
      Actions[] Actions;
      Run() 
      { 
          if(Exp.Evaluate()) 
          { 
              foreach(action in Actions) 
              { 
                  action.Execute(); 
              }
          } 
      }
  }
  </code></pre>