Eval Expression.NET improves performance dramatically to access public and private methods, field, property value, or create object instances overusing C# reflection.
It allows you to 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);");
PM> Install-Package Z.Expressions.Eval
* PRO Version unlocked for the current month
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 });
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);
}
Eval Expression.NET supports 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 C# 6.0 features even if you are using C# 4.0.
- string interpolation
- typename
- null conditional member access
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.
LINQ
extension method is free with EF Classic - Community
The best way to contribute is by spreading the word about the library:
- Blog it
- Comment it
- Star it
- Share it
A HUGE THANKS for your help.
- Projects:
- Learn Websites
- Online Tools:
- and much more!
To view all our free and paid projects, visit our website ZZZ Projects.