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).
PM> NuGet\Install-Package Feval.Core -Version 1.0.8.29431
public class A
{
public int instanceValue = 2;
public string Func(string value)
{
return $"Hello {value}"
}
}
Create an evaluation context and reference all assemblies in current domain.
var ctx = Context.Create();
ctx.WithReferences(AppDomain.CurrentDomain.GetAssemblies());
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
> ctx.Evaluate("a.Func(\"World\"))"
> Hello World