使用 C# 4.0 动态功能从 C# 调用 javascript
是否可以从 C# 调用 javascript 类似的东西?
ScriptRuntime py = Python.CreateRuntime();
dynamic random = py.UseFile("cal.js");
var result =random.Add(1,2);
cal.js
function Add(a, b) {
return (a + b);
}
Is it possible to call javascript from c# something like this?
ScriptRuntime py = Python.CreateRuntime();
dynamic random = py.UseFile("cal.js");
var result =random.Add(1,2);
cal.js
function Add(a, b) {
return (a + b);
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
是的,只要您将 js 托管在网页浏览器控件中即可。为此,您可以使用 ObjectForScripting 和文档属性以及 com 可见对象。事实上,反之亦然,即您可以从 JavaScript 调用 C# 方法。动态类型允许您传递和使用复杂的对象,而无需使用反射 Invoke/GetProperty 等。
这是一个非常简单的示例。
Yes, as long as you host the js in a webrowser control. You can use the ObjectForScripting and document properties for this along with a com visible object. Indeed the opposite is true as well, that is you can call c# methods from JavaScript. The type dynamic allow you to pass, and work with, complex objects without having to use reflection Invoke/GetProperty, etc.
Here is a really simple example.
是的,可以从 C# 调用 Javascript 代码,但不能使用动态类型。
相反,您可以利用 JScript.Net 的 eval 功能来实现此目的。
以下文章介绍了执行此操作的基础知识:
http://odetocode.com/Code/80.aspx
Yes it is possible to call Javascript code from C#, but not by using dynamic types.
Instead, you can leverage JScript.Net's eval functionality for this.
The following article has the basics of doing this:
http://odetocode.com/Code/80.aspx