Is there any off the shelf component which can be used to evaluate expressions on an object?
<p>We would like to parse expressions of the type:</p>

<p><code>Func&lt;T1, bool&gt;</code>, <code>Func&lt;T1, T2, bool&gt;</code>, <code>Func&lt;T1, T2, T3, bool&gt;</code>, etc.</p>

<p>I understand that it is relatively easy to build an expression tree and evaluate it, but I would like to get around the overhead of doing a Compile on the expression tree.</p>

<p>Is there any off the shelf component which can do this?</p>

<p>Is there any component which can parse C# expressions from a string and evaluate them? (Expression services for C# , I think there is something like this available for VB which is used by WF4)</p>

<p><strong>Edit:</strong>
We have specific models which on which we need to evaluate expressions which are entered by IT Administrators.</p>

<pre><code>public class SiteModel
{
    public int NumberOfUsers {get;set;}
    public int AvailableLicenses {get;set;}
}
</code></pre>

<p>We would like for them to enter an expression like:</p>

<pre><code>Site.NumberOfUsers &gt; 100 &amp;&amp; Site.AvailableLicenses &lt; Site.NumberOfUsers
</code></pre>

<p>We would then like to generate a Func which can be evaluated by passing a SiteModel object.</p>

<pre><code>Func&lt;SiteModel, bool&gt; (Site) =&gt; Site.NumberOfUsers &gt; 100 &amp;&amp; Site.AvailableLicenses &lt; Site.NumberOfUsers
</code></pre>

<p>Also, the performance should not be miserable (but around 80-100 calls per second on a normal PC should be fine).</p>
