【100分】Javascript 调用 C#的WebBrowser中的external函数, 出现问题
总述: 程序是一个form.
内部一个WebBrowser, 实现了 window.external 。 其中需要暴露给 Js的都设置了 ComVisble(true)
环境:
C#文件:
有暴露的类
[ComVisble(true)]
public class Class1(){ public Class1(){} }
有2个函数
1. Class1 GetClass1(){ return new Class1() };
2. bool ValidateClass1( Class1 clsInstance1 ){ return true; }
Js文件:
1. var clsInstance1 = GetClass1();
2. alert( ValidateClass1( clsInstance1 );
问题:
Js引擎能很好的得到 clsInstance1 , 甚至你 alert(clsInstance1) 都能得到消息 "Class1 xxxxx"
但是一旦把 clsInstance1 作为函数 ValidateClass1的函数参数变量 ,则会得到异常错误 Class does not support Automation
这个问题把我弄得很崩溃,明明js可以创建变量 clsInstance1 , 却无法作为 ValidateClass1 的参数。
后来我把 ValidateClass改成了 ValidateClass( object clsInstance1 )
js不报错了,但是C#显示 clsInstance1 成了 __System_Com_object , 而且无法转换成 Class1
我被这个问题搞死了,js明明可以创建这种类,并且可以alert,为什么作为参数就会说 does not support automation!!
求大家帮助!
如果解决愿意200分!!!
谢谢!!!!
------解决方案--------------------
是winform?
------解决方案--------------------
别沉了,顶下,我试了,不行。
------解决方案--------------------
winform 程序怎么还有js调用。 不太明白。
------解决方案--------------------
学习下 winform调用js
------解决方案--------------------
js 使用的com类型要支持自动化
就是说Class1要实现idispatch
试试
[AutomationProxy(true)]