document.parentWindow “指定的强制转换无效”
本文关键字:转换 无效 parentWindow document | 更新日期: 2023-09-27 18:23:56
在C#中,我正在使用InternetExplorer.Application(一个进程外的COM服务器(编写一些自动化代码。
我有一个"dynamic browser
"变量保存对此自动化对象的引用,并且能够访问
dynamic body = browser.document.body;
browser.document.getElementById("someInput").value = "test";
但我完全无法访问窗口对象,无论是通过
browser.document.parentWindow
或browser.document.defaultView
.
例如:
browser.document.parentWindow.execScript("alert('hello')");
或
dynamic window = browser.document.parentWindow;
当我尝试访问上述窗口对象(或使用 defaultView(时,我总是收到异常消息"错误:指定的强制转换无效"。这是为什么呢?
SA 上还有另一个与此类似的问题,但公认的答案是关于我认为是使用 WebBrowser 控件的 inproc 服务器的线程问题,并且我再次使用输出或进程服务器,所以我不相信任何线程问题适用于我的问题。
技术详细信息:Windows 7 64位,Internet Explorer 11,.NET 4.0控制台应用程序
解决方案是将我的类标记为单线程单元,并在主入口点上使用 [STAThread] 属性。我以为由于它是一个进程外的COM服务器,因此不会有任何同步问题。