2012-04-25 101 views
6

我希望能够在运行.net环境的服务器端执行JavaScript。
那么如何做到这一点? 主要是我需要文本处理函数,我会输入一个字符串并获取从JavaScript代码返回的字符串。
不需要窗口交互。是否可以在.net框架中执行JavaScript代码?

+3

.net对于文本处理来说非常不错。有什么特定的需要,只有JavaScript可以提供? – 2012-04-25 12:57:40

+0

我第二@MarceloCantos的评论。用于文本处理的.Net之外的优点是什么? – 2012-04-25 13:00:08

+2

这似乎是想要做的一件奇怪的事情。你究竟想要完成什么? – asawyer 2012-04-25 13:00:26

回答

11

是的,有几个JS引擎可以使用。 Jurassic,JintIronJS是基于.NET的,但您也可以与其他人接口,例如Chrome浏览器中的V8或IE中的ActiveScript。

编辑:五年后,JS引擎原产于.NET稍微滞后(无支持ES6着呢,IronJS似乎放弃了),但我们现在也有开源ChakraCore这是不是很难在.NET中集成和使用一个可用的包装器。

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

+0

有关如何与Chrome或JavaScript引擎交互的任何链接? – Karim 2012-04-25 13:19:53

+1

它看起来像Jint是最好的选择:) – Karim 2012-04-25 17:45:02

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

+0

这很漂亮。 – asawyer 2012-04-25 13:17:19

相关问题