在c#代码中沙箱JavaScript并执行它

本文关键字:JavaScript 执行 代码 | 更新日期: 2023-09-27 17:53:14

是否有可能在c#代码中沙箱一个JavaScript函数,通过传递一个参数(如数组)来执行它,并返回结果?这里不涉及web浏览器,这不是Ajax或'registerstartupscript'类型的问题。

在c#代码中沙箱JavaScript并执行它

根据我自己的经验,对于简单的事情,侏罗纪工作就像一个魅力,它是一个JavaScript,可以用来运行时编译JavaScript和调用函数,变量或任何东西。

例如,从他们自己的文档页面:

var engine = new Jurassic.ScriptEngine();
Console.WriteLine(engine.Evaluate("5 * 10 + 2"));

还有其他的选择,包括嵌入一个完整的JavaScript引擎,但AFAIK和阅读你的问题的要求,似乎侏罗纪应该在你的情况下工作,你得到使用c#编写的托管JavaScript编译器的优势,所以没有其他依赖于BCL从。net和侏罗纪本身。

是的,你可以!

JavaScript。.NET是Google V8引擎的。NET移植版。

  • https://github.com/JavascriptNet/Javascript.Net

另一个我很喜欢的叫做侏罗纪,它可以在nuget上找到。

  • https://jurassic.codeplex.com/