是否可以在.NET Framework中执行JavaScript代码

is it possible to execute javascript code in the .net framework?

本文关键字:执行 JavaScript 代码 Framework NET 是否      更新时间:2023-09-26

我希望能够在运行.net环境的服务器端执行JavaScript。
那么怎么可能呢?主要是我需要文本处理函数,我会输入一个字符串并获取从 JavaScript 代码返回的字符串。
无需窗互。

是的,您可以使用几个JS引擎。侏罗纪,金特和铁JS是.基于NET,但您也可以连接到其他浏览器,例如Chrome浏览器的V8或IE的ActiveScript。

编辑:五年后,.NET原生的JS引擎有些落后(还没有支持ES6,IronJS似乎被放弃了),但我们现在也有开源的ChakraCore,它并不难在.NET中集成和使用一个现成的包装器。

此外,JavaScriptEngineSwitcher 允许通过通用接口从 .NET 代码中使用几乎任何现有的 JS 引擎,因此切换引擎不需要更改代码。

您可以编写一个 JScript.Net 文件并将其编译为带有 jsc 的程序集,然后像使用任何其他程序集一样使用该程序集。

例:

package Your.Desired.Package.Name {
    Class SomeClassName {
        public static function doSomething(foo) }
            var bar;
            // Fairly normal JavaScript code here
            if (foo.match(/sometest/)) {
                // Do something
            }
            else {
                // Do something else
            }
        }
    }
}

除了packageclass结构之外,JScript.Net 中的代码本质上是JavaScript。如果你想作恶,你甚至eval。:-)

然后,将其编译为如下所示的程序集:

jsc /target:library TheFileName.js

。它生产和组装TheFileName.dll.