C# Eval Function | Evaluate, Compile, and Execute C# code and expression at runtime.
C#
JonathanMagnan Update project
Update project
Latest commit 8c5a6d6 Jun 29, 2018
Permalink
Failed to load latest commit information.
docs Fix CSS May 23, 2018
docs2/pages good url May 21, 2018
src Update project Jun 29, 2018
.gitattributes Create .gitattributes Nov 23, 2015
.gitignore Update .gitignore Nov 29, 2015
LICENSE Update LICENSE Feb 9, 2016
README.md Update README.md Jun 20, 2017
version.txt Update version.txt Nov 7, 2017

README.md

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

download

PM> Install-Package Z.Expressions.Eval

* PRO Version unlocked for the current month

Stay updated with latest changes

Twitter Follow Facebook Like

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 });

Learn more

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);
}

Learn more

What's supported?

Eval Expression.NET support all C# Syntax:

You can even access to C# 6.0 features even if you are using C# 4.0.

  • string interpolation
  • typename
  • null conditional member access

Learn more

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!