Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/260.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从JavaScript中引用C#方法而不调用它_C#_Javascript_Function_Methods_Webbrowser Control - Fatal编程技术网

从JavaScript中引用C#方法而不调用它

从JavaScript中引用C#方法而不调用它,c#,javascript,function,methods,webbrowser-control,C#,Javascript,Function,Methods,Webbrowser Control,我使用ObjectForScript设置了WebBrowser控件,这样我就可以从浏览器控件中托管的JavaScript调用C#方法 一切似乎都很顺利,除了在我的单元测试中,我对窗口进行了一些检查。我正在使用的外部方法,结果证明 window.external.MyMethod …似乎和…一样有效 window.external.MyMethod() 如果我需要该方法的引用,该怎么办?或者对于我的单元测试: typeof(window.external.MyMethod) === 'func

我使用ObjectForScript设置了WebBrowser控件,这样我就可以从浏览器控件中托管的JavaScript调用C#方法

一切似乎都很顺利,除了在我的单元测试中,我对窗口进行了一些检查。我正在使用的外部方法,结果证明

window.external.MyMethod
…似乎和…一样有效

window.external.MyMethod()
如果我需要该方法的引用,该怎么办?或者对于我的单元测试:

typeof(window.external.MyMethod) === 'function'
但这将调用该方法(并失败,因为它返回该方法返回的任何内容的类型)

如何在不调用该方法的情况下获取对该方法的引用?

查看我能找到的内容,它看起来像引用了
窗口的任何成员。外部
启动对主机的调用:

…对“window.external.speech”的引用将调用主机来解析名称“speech”

我并不特别熟悉这个API,但您似乎可以执行以下操作:

window.external.checkType('MyMethod') === 'function'

其中,
checkType
是您在C代码中声明的一个函数,可以告诉您所提供属性的类型。

您是否尝试过语法
window.external[MyMethod]
?是的,我尝试过window.external['MyMethod']。这也调用了该方法。