2

在 C# 中 Object htmlDoc = _webbrowser.Document; ,当我在调试模式下单步执行代码时, htmlDoc = {mshtml.HTMLDocumentClass} 当我将鼠标悬停在Object htmlDoc分配上时,我会显示。

但是当我在 IDE 中键入这段代码时HTMLDocument htmlDoc = new HTMLDocumentClass();,Visual Studio 无法识别HTMLDocument,也无法识别HTMLDocumentClass该类。

我已经包含了的命名空间System.Windows.Forms并引用了同名的 DLL,它是版本 4.0.0.0 和运行时版本 v4.0.30319。我尝试添加命名空间System.Windows.Brower,但 IDE 无法识别它的存在。为什么调试器似乎可以识别,mshtml.HTMLDocumentClass但代码本身却无法识别?

4

1 回答 1

3

.NETHtmlDocument

...基于 Internet Explorer 的 DHTML DOM 实现的非托管接口:IHTMLDocument、IHTMLDocument2、IHTMLDocument3 和 IHTMLDocument4。HtmlDocument 仅公开这些非托管接口上最常用的属性和方法。您可以使用 DomDocument 属性直接访问所有其他属性和方法,您可以将其强制转换为所需的非托管接口指针。

mshtml.HTMLDocumentClass您看到的实例来自 .NET 库内部引用的 COM 组件的互操作库;它没有公开曝光。除非您在项目中添加对此的引用并使用命名空间,否则项目HTMLDocumentClass中不存在(直接)。我相信您必须添加才能直接访问它的 DLL 名为Microsoft.mshtml.dll.

于 2019-12-01T03:53:47.770 回答