繁体   English   中英

如何让 C# 与 Javascript 互操作?

[英]How can I get C# to interop with Javascript?

我想在我的 C# 程序中托管 Javascript。 我希望允许用户编写自定义 Javascript 代码,并让我的 C# 程序运行他们的功能,以及允许用户使用我的框架代码。

是否有可能做到这一点? 如果是这样,如何?

编辑:明确地说,我没有在这个项目中使用 ASP.NET。

您还可以使用 webbrowser 控件在 html 文档中托管 javascript,要在两者之间进行交互,您可以创建一个 COM 可见类并将其实例设置为 ObjectForScripting 属性。

'external' 类的任何公共成员现在都可以通过 javascript 中的 window.external 访问。 此外,从托管代码方面,您可以使用文档的 InvokeScript 方法来调用任何 javascript 函数。

这样很容易在两者之间传递复杂的对象。

我在这个 Google Earth Api 应用程序中大量使用了这个想法。 http://frasechapman.blogspot.com/2008/08/google-earth-plug-in-and-c.html

我强烈建议您使用Microsoft 动态语言运行时 (DLR) 它在生活中的目的是促进 .Net 环境中的脚本编写。 DLR 不是特定于脚本的,因此随着时间的推移,将在它之上构建更多脚本语言,但目前我知道的是 IronRuby、IronPython 和 JScript。

Spidermonkey .NET可能正是您要找的。

我不确定它有多发达。 但它基本上是Mozilla 的 Spidermonkey Javascript 解析器引擎的一个端口,我非常喜欢它。

或者你可以直接评估它

过去这样做的方法是 Windows Script Host,它允许您托管 JSCRipt 或 VBScript。

您当然可以从 C# 本地运行 Javascript - 请参阅这篇文章了解初学者。 但是,让 Javascript 访问您的框架可能会更棘手。 也许Script#可以提供帮助?

您可以在 HTML 组件中嵌入 JavaScript。 对于另一种方式,正确的东西是 ASP.NET Web 服务。 也许使用智能客户端,您可以将两者结合起来。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM