我希望能够在运行.Net环境的服务器端执行JavaScript。如何实现呢?主要需要文本处理功能,输入一个字符串并从JavaScript代码中返回一个字符串,无需窗口交互。
是的,有几个可供使用的JS引擎。 Jurassic、Jint和IronJS是基于.NET的,但你也可以与其他引擎进行交互,如来自Chrome浏览器的V8引擎或IE的ActiveScript引擎。
编辑:五年后,.NET原生的JS引擎在某种程度上落后了(没有一个支持ES6,而IronJS似乎被放弃了),但现在我们也有了开源的ChakraCore,它很容易与.NET集成和使用,只需使用其中一个现成的包装器即可。
此外,JavaScriptEngineSwitcher允许通过一个公共接口在.NET代码中使用几乎所有现有的JS引擎,因此切换引擎不需要更改代码。
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
}
}
}
}
package
和class
结构外,JScript.Net中的代码基本上就是JavaScript。如果您想要做坏事,甚至可以使用eval
。 :-)jsc /target:library TheFileName.js
...并且它会生成一个名为TheFileName.dll
的程序集。