Eval-Expression.NET
Eval-Expression.NET copied to clipboard
Unable to Execute method that requires Dictionary<string, object> parameter
I'm trying to call context.Execute()
on a method that requires a Dictionary<string, object>
to be passed in. When invoked, I received the following message:
No applicable member has been found for the expression
If I change the parameter passed in to something simple like a string, I'm able to call the method without issue. I've also tried to pass in a Dictionary<string, string>
and receive the same message. Here's a pared down version of the code:
public class ExpressionStringLibrary : IDisposable
{
private Dictionary<string, object> _interpolationValDict;
private string _testString;
// This call fails with the error described above
public void SetInterpolationValDict(Dictionary<string, object> interpolationValDict) => _interpolationValDict = interpolationValDict;
// This call succeeds with the error described above
public void SetInterpolationValDictWITHSTRING(string testString) => _testString = testString;
}
Invocation:
// Get eval context
var context = new EvalContext();
// Register static helper
context.RegisterGlobalVariable("exprStrLib", new ExpressionStringLibrary(), true);
// Fails
var interpolationValues = new Dictionary<string, object>();
context.Execute("SetInterpolationValDict({0})", interpolationValues);
// Succeeds
context.Execute("SetInterpolationValDictWITHSTRING({0})", "test");
Should I be able to pass a Dictionary<string, object>
?
Hello @JamesHill3 ,
Thank you for reporting, my developer will look at it.
Best Regards,
Jon
Hello @JamesHill3 ,
Just to give you an update, we currently have a fix under review.
If approved, it will be merged next week.
Best Regards,
Jon
Hello @JamesHill3 ,
Sorry for the long delay on this issue,
The v4.0.88 has been released, which should fix this issue.
Let me know if everything is now working as expected.
Best Regards,
Jon