我需要从javascript调用C#BHO方法

我遵循了this question中给出的解决方案

我得到错误:

'mshtml.HTMLWindow2Class' does not contain a definition for 'myExtension'.

我无法分配:
dynamic window = browser.Document.parentWindow;

由于parentWindow是未定义的,因此我必须强制转换为(mshtml.IHTMLDocument2)和(mshtml.IHTMLWindow2)

有没有人有我可以引用的完整示例或任何帮助或替代解决方案

最佳答案

我有同样的问题。以下修复似乎在我的BHO中可以正常工作:

dynamic window = _webBrowser.Document.parentWindow;
var windowEx = (IExpando)window;
PropertyInfo p = windowEx.AddProperty("myExtension");
p.SetValue(windowEx, this);

代替:
dynamic window = _webBrowser.Document.parentWindow;
var windowEx = (IExpando)window;
PropertyInfo p = windowEx.AddProperty("myExtension");
window.myExtension = this;

09-19 19:56