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

本文关键字:动态 表达式 评估 IronJS 何使用 | 更新日期: 2023-09-27 18:20:52

我有一个类似"(((2+5)*1000)/((30-20)*7))"的表达式。如何使用C#中的IronJS计算表达式。预期结果是100。

我尝试了"如何动态评估C#表达式?"中描述的前两个评分答案?它就是这样运作的。好的

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

现在我正在尝试使用IronJS。有可能吗。怎样我读过一些关于IronJs的文章(例如,这里有一篇),但就是不符合要求。

注:这是为了我自己的兴趣,我正在做这个实验。

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

这是IronJS源代码中的一个示例,这是另一个。

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

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更新1一起发布(即将发布),夜间构建状态良好,我没有遇到任何问题。

所有你需要开始编码:小介绍和nuget包。祝你好运!:)

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

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