Evaluate, Compile and Execute dynamic C# code and expression at runtime
From simple C# math expression...
int result = Eval.Execute<int>("X + Y", new { X = 1, Y = 2});To complex code to parse.
int result = Eval.Execute<int>(@"
var list = new List<int>() { 1, 2, 3, 4, 5 };
var filter = list.Where(x => x < 4);
return filter.Sum(x => x);");Eval Expression.NET improve dramatically performance to access public and private method, field, property value or to create object instance over using C# reflection.
Download
PM> Install-Package Z.Expressions.Eval
* PRO Version unlocked for the current month
Stay updated with latest changes
Eval.Execute
Evaluate and execute the code or expression.
Support:
Anonymous Class
// using Z.Expressions; // Don't forget to include this.
int result = Eval.Execute<int>("X + Y", new { X = 1, Y = 2});Argument Position
// using Z.Expressions; // Don't forget to include this.
int result = Eval.Execute<int>("{0} + {1}", 1, 2);Class Member
// using Z.Expressions; // Don't forget to include this.
dynamic expandoObject = new ExpandoObject();
expandoObject.X = 1;
expandoObject.Y = 2;
int result = Eval.Execute<int>("X + Y", expandoObject);Extension Methods
// using Z.Expressions; // Don't forget to include this.
string s = "X + Y";
int result = s.Execute<int>(new { X = 1, Y = 2 });Eval.Compile
Compile the code or expression and return a delegate.
Support:
Custom Delegate
// using Z.Expressions; // Don't forget to include this.
var compiled = Eval.Compile<Func<int, int, int>>("X + Y", "X", "Y");
foreach(var item in list)
{
int result = compiled(item.Value1, item.Value2);
}Extension Methods
// using Z.Expressions; // Don't forget to include this.
string s = "X + Y";
var compiled = s.Compile<Func<int, int, int>>("X", "Y");
foreach(var item in list)
{
int result = compiled(item.Value1, item.Value2);
}What's supported?
Eval Expression.NET support all C# Syntax:
- All C# Keywords (MSDN Documentation)
- All C# Operators (MSDN Documentation)
- Constant Folding
- Extension Methods
- Generic Type
- Lambda Expression
- Number Suffix
You can even access to C# 6.0 features even if you are using C# 4.0.
- string interpolation
- typename
- null conditional member access
PRO
Every month, a new monthly trial of the PRO Version is available to let you evaluate all its features without limitations.
| Features | PRO Version |
|---|---|
| Maximum Characters | Unlimited |
| Commercial License | Yes |
| Royalty-Free | Yes |
| Support & Upgrades (1 year) | Yes |
| Learn more about the PRO Version |
- Starting from version 2.x, there is no longer a free limited version.
LINQextension method is free with EF Classic - Community
Contribute
The best way to contribute is by spreading the word about the library:
- Blog it
- Comment it
- Fork it
- Star it
- Share it
A HUGE THANKS for your help.
More Projects
Entity Framework
Bulk Operations
Expression Evaluator
Utilities
Need more info? info@zzzprojects.com
Contact our outstanding customer support for any request. We usually answer within the next business day, hour, or minutes!

Formed in 2009, the Archive Team (not to be confused with the archive.org Archive-It Team) is a rogue archivist collective dedicated to saving copies of rapidly dying or deleted websites for the sake of history and digital heritage. The group is 100% composed of volunteers and interested parties, and has expanded into a large amount of related projects for saving online and digital history.
