title: how to evaluate an Expression inside ExpressionVisitor?
body: <p>I need to use ExpressionVisitor to analyse an Expression before executing it. For my needs, i need to evaluate the right part of a Divide expression but i don't know how to do it. Here's a sample code that i have:</p>
  
  <pre><code>internal class RulesChecker : ExpressionVisitor
  {
      private readonly object data;
  
      public RulesChecker(object data)
      {
          this.data = data;
      }
  
      protected override Expression VisitBinary(BinaryExpression node)
      {
          if (node.NodeType == ExpressionType.Divide)
          {
              var rightExpression = node.Right;
  
              // compile the right expression and get his value            
          }
  
          return base.VisitBinary(node);
      }
  }
  </code></pre>
  
  <p>Suppose that i have this code to evaluate:</p>
  
  <pre><code>Expression&lt;Func&lt;DataInfo, decimal?&gt;&gt; expression = x =&gt; x.A / (x.B + x.C);
  var rulesChecker = new RulesChecker(data);
  rulesChecker.Visit(expression);
  </code></pre>
  
  <p>In the VisitBinary function, i will receive a node that will contain the left and right part of the divide operation. My question is, how can i evaluate the value that i will get in the right part of the operation?</p>