从java脚本到C#的回调,C#和java脚本之间的异步编程

Callback from java script to C# ,Asynchronous programming between c# and java script

本文关键字:脚本 java 之间 异步 编程 回调      更新时间:2023-09-26

我有一个基于银光的Web应用程序。我正在使用 ScriptObject 在 java 脚本中连接和调用方法,进而 java 脚本与插件交互。从 c# 到 java 脚本的所有函数调用都是同步的。现在我正在尝试使用 Web 套接字服务器来替换插件。

现在我只是更改java脚本文件中的方法代码以与Web套接字服务器进行交互。由于 Web 套接字调用本质上是异步的,因此我无法实现从 c# 到 java 脚本的调用并返回值。

现在我想从java脚本调用c#代码。这可能吗?

请建议如何解决此问题。

这是可能的。

你像这样批注一个类:

public class MyScriptableManagedType {
        [ScriptableMember()]
        public string MyToUpper(string str) {
            return str.ToUpper();
        }
        [ScriptableMember()]
        public string Name { get; set; }
}

把它放在页面的JavaScript对象范围内:

MyScriptableManagedType smt = new MyScriptableManagedType();
HtmlPage.RegisterScriptableObject("mySLapp", smt);

然后你可以像这样从javascript中使用它:

var slCtl = null;
function pluginLoaded(sender,args){
     slCtl  = sender.getHost();
     alert(slCtl.Content.mySLapp.MyToUpper("Test String"));
}
函数插件加载

必须注册到银光插件才能在加载时调用。

获取和更多详细信息,请访问:

http://msdn.microsoft.com/en-us/library/cc221414(v=vs.95).aspx