Skip to content
/ feval Public

A light C# expression evaluator based on reflection.

License

Notifications You must be signed in to change notification settings

oahceh/feval

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

42 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

feval logo

A Light C# Expression Evaluator

Static Badge

About

Feval is a lightweight C# expression evaluator written by pure C# based on reflection. It is designed to be embedded in existing project for simple expression evaluation or debugging(inspect or modify values).

Installation

PM> NuGet\Install-Package Feval.Core -Version 1.0.8.29431

Use at a Glance

Sample Code

public class A 
{
    public int instanceValue = 2;
    
    public string Func(string value)
    {
        return $"Hello {value}"
    }
}

Setup

Create an evaluation context and reference all assemblies in current domain.

var ctx = Context.Create();
ctx.WithReferences(AppDomain.CurrentDomain.GetAssemblies());

Property/Field Access

Assuming the evaluation context has been created.

> ctx.Evaluate("a = new A()")
> ctx.Evalute("a.instanceValue")
1
> ctx.Evalute("a.instanceValue = 2")
> ctx.Evalute("a.instanceValue")
2

Method Call

> ctx.Evaluate("a.Func(\"World\"))"
> Hello World

About

A light C# expression evaluator based on reflection.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages