只是想知道是否有人尝试过将任何js引擎嵌入到。net环境中。我可以找到并实际使用(经过大量的痛苦和努力,因为它相当过时,还没有完全完成)spidermonkey-dotnet项目。有人有这方面的经验吗?引擎像SquirrelFish, V8..

并不是说我对Mozilla的Spidermonkey不满意(在核心ASP中使用它为自定义组件提供类似rails的迷你框架)。NET应用程序),但我仍然想进一步探索这些选项。命令行解决方案不是我所需要的,我不能依赖CLR以外的任何东西,我需要从/到JavaScript/ c#对象调用方法。

// c# class
public class A
{
    public string Hello(string msg)
    {
        return msg + " whatewer";
    }
}

// js snippet
var a = new A();
console.log(a.Hello('Call me')); // i have a console.log implemented, don't worry, it's not a client-side code :)

澄清一下——我并不是试图用服务器端javascript编写应用程序本身。它仅用于编写自定义用户子应用程序(可以看作某种DSL)。让普通人用js编程比用c#更容易(也更安全)。


当前回答

微软有文档记载的向任何东西添加脚本扩展性的方法是IActiveScript。你可以在任何。net应用中使用IActiveScript来调用脚本逻辑。逻辑可以在您放入脚本上下文中的. net对象上聚会。

这个答案提供了一个应用程序,它的代码:

IE10 Chakra JScript引擎是否可以从c#中独立访问?

其他回答

您可以使用Rhino在Java上编写的Mozilla Javascript引擎,并将其与IKVM一起使用,这里有一些说明

产品说明:https://www.codeproject.com/Articles/41792/Embedding-JavaScript-into-C-with-Rhino-and-IKVM

如果语言不是问题(任何沙盒脚本语言),那么。net有LUA。. net框架的Silverlight版本也是沙盒的。

大家也来看看《侏罗纪》吧:

http://jurassic.codeplex.com/

编辑:这已经移动到github(似乎活跃的第一眼)

https://github.com/paulbartrum/jurassic

你可以试试ironJS,看起来很有前途,尽管它正在大力开发中。https://github.com/fholm/IronJS

您可能也会对Microsoft ClearScript感兴趣 它托管在GitHub上,并在Ms-Pl许可下发布。

我不是微软的粉丝,但我必须承认V8支持的功能和Javascript差不多。Net,更重要的是,该项目仍在维护。就我而言,对委托的支持也比Spidermonkey-dotnet更好。

ps:它也支持JScript和VBScript,但我们对这个老东西不感兴趣。

ps:它兼容。net 4.0和4.5+