是否可以在.net框架中执行javascript代码?

时间:2012-04-25 12:54:41

标签: c# javascript .net

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

2 个答案:

答案 0 :(得分:11)

是的,你可以使用几个JS引擎。 JurassicJintIronJS是基于.NET的,但您也可以与其他人(例如Chrome浏览器中的V8或IE中的ActiveScript)进行交互。

编辑:五年后,原生于.NET的JS引擎有些落后(目前还没有支持ES6,IronJS似乎已经放弃了),但我们现在也拥有开源{{3在.NET中与一个现成的包装器集成和使用并不是很难。

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

答案 1 :(得分:3)

您可以编写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生成和组装。