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.
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!