我想在我的C#程序中托管Javascript。我想允许用户编写自定义Javascript代码,让我的C#程序运行他们的函数,并允许用户使用我的框架代码。
有可能这样做吗?如果是这样,怎么样?
编辑:要清楚,我不使用ASP.NET进行此项目。
答案 0 :(得分:3)
你也可以使用webbrowser控件在html文档中托管javascript,在两者之间进行交互,你可以创建一个COM可见类,并将它的实例设置为ObjectForScripting属性。
现在可以通过javascript中的window.external访问“外部”类的所有公共成员。此外,从托管代码端,您可以使用文档的InvokeScript方法来调用任何javascript函数。
这样很容易在两者之间传递复杂的物体。
我在Google Earth Api应用程序中使用了这个想法。 http://fraserchapman.blogspot.com/2008/08/google-earth-plug-in-and-c.html
答案 1 :(得分:2)
我强烈建议您使用Microsoft Dynamic Langauage Runtime (DLR)。它的目的是促进.Net环境中的脚本编写。 DLR不是特定于脚本的,因此随着时间的推移,将会构建更多的脚本语言,但目前我所知道的是IronRuby,IronPython和JScript。
答案 2 :(得分:1)
Spidermonkey .NET可能就是你要找的东西。
我不确定它是多么发达。但它基本上是Mozilla's Spidermonkey Javascript解析器引擎的端口,我非常喜欢。
或者您可以对其进行评估directly
答案 3 :(得分:1)
执行此操作的方法曾经是Windows脚本宿主,它允许您托管JSCript或VBScript。
答案 4 :(得分:0)
您当然可以从C#本地运行Javascript - 请参阅this article作为入门者。但是,让Javascript访问您的框架可能会很棘手。也许Script#可以提供帮助吗?
答案 5 :(得分:0)
您可以在其中嵌入JavaScript的HTML组件。另一方面,正确的是ASP.NET Web服务。也许使用智能客户端,您可以将它们结合起来。