如何使用IronJS评估动态表达式?

时间:2015-11-06 02:57:23

标签: c# ironjs

我有一个像"(((2+5)*1000)/((30-20)*7))"这样的表达式如何使用C#中的IronJS来评估表达式。 预期的结果是100。

我尝试了How can I evaluate a C# expression dynamically?中描述的前两个评级答案,并且它以这些方式工作。精细。

我还研究了评论中提到的 @Rudolf_Abel @Jeno Laszlo 提出的解决方案,即IronJS是更好的选择。

现在我正在尝试使用IronJS。有可能。怎么样?我已经阅读了一些关于IronJs的文章(例如here就是一篇文章),但是不能满足要求。

N.B.~这是为了我自己的兴趣,我正在进行这个实验。

2 个答案:

答案 0 :(得分:1)

以下是来自IronJS来源的a sample,此处是another one

所以,你的代码将是这样的:

private static void Run()
{
        var ctx = new IronJS.Hosting.CSharp.Context();

        dynamic a = ctx.Execute("var a = (((2+5)*1000)/((30-20)*7)); a;");
        Console.WriteLine(a);
}

P.S。至于我,我更喜欢使用C#脚本API。稳定的版本将与VS2015 update1一起发布(即将推出),夜间版本处于良好状态,我没有遇到麻烦。

您需要开始编码:small intronuget package。祝你好运!:)

答案 1 :(得分:1)

我不知道这会有所帮助,但请尝试一下。

IronJS.Hosting.Context jsContext;
jsContext = IronJS.Hosting.Context.Create();
jsContext.Execute("(function(){return eval('(((2+5)*1000)/((30-20)*7))');})()");