document.parentWindow"指定的演员表无效"

时间:2014-09-23 03:54:37

标签: c# internet-explorer automation

在C#中,我正在使用InternetExplorer.Application(一个进程外的COM服务器)编写一些自动化代码。

我有一个" dynamic browser"变量持有对此自动化对象的引用并且能够访问

dynamic body = browser.document.body;

browser.document.getElementById("someInput").value = "test";

但是完全无法通过

访问窗口对象

browser.document.parentWindowbrowser.document.defaultView

例如:

browser.document.parentWindow.execScript("alert('hello')");

dynamic window = browser.document.parentWindow;

当我尝试访问上面的窗口对象(或使用defaultView)时,我总是收到异常消息"错误:指定的强制转换无效。"这是为什么?

在SA上还有另外一个与此类似的问题,但是接受的答案是关于我认为是使用WebBrowser控件的inproc服务器的线程问题,我再次使用out或process服务器,所以我不知道认为任何线程问题都适用于我的问题。

Techincal详细信息:Windows 7 64位,Internet Explorer 11,.NET 4.0控制台应用程序

1 个答案:

答案 0 :(得分:1)

解决方案是将我的类标记为单线程单元,在主入口点上具有[STAThread]属性。我曾经想过,因为它是一个进程外的COM服务器,所以不存在任何同步问题。