Skip to content

zzzprojects/Eval-Expression.NET

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

What's Eval Expression.NET?

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

// @nuget: Z.Expressions.Eval
using Z.Expressions;

int result = Eval.Execute<int>("X + Y", new { X = 1, Y = 2});

To complex code to parse.

// @nuget: Z.Expressions.Eval
using Z.Expressions;

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

Download

download

PM> Install-Package Z.Expressions.Eval

* PRO Version unlocked for the current month

Eval.Execute

Evaluate and execute the code or expression.

Support:

Anonymous Class

// @nuget: Z.Expressions.Eval
using Z.Expressions;

int result = Eval.Execute<int>("X + Y", new { X = 1, Y = 2});

Argument Position

// @nuget: Z.Expressions.Eval
using Z.Expressions;

int result = Eval.Execute<int>("{0} + {1}", 1, 2);

Class Member

// @nuget: Z.Expressions.Eval
using Z.Expressions;

dynamic expandoObject = new ExpandoObject();
expandoObject.X = 1;
expandoObject.Y = 2;
int result = Eval.Execute<int>("X + Y", expandoObject);

Extension Methods

// @nuget: Z.Expressions.Eval
using Z.Expressions;

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

// @nuget: Z.Expressions.Eval
using Z.Expressions;

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

// @nuget: Z.Expressions.Eval
using Z.Expressions;

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 supports all C# Syntax:

You can even access 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.
  • LINQ extension 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
  • Star it
  • Share it

A HUGE THANKS for your help.

More Projects

To view all our free and paid projects, visit our website ZZZ Projects.

About

C# Eval Expression | Evaluate, Compile, and Execute C# code and expression at runtime.

Topics

Resources

License

Stars

Watchers

Forks

Contributors 5

Languages