无法将“HtmlAgilityPack.HtmlDocument”类型的对象强制转换为“mshtml.IHTMLDocument2”

时间:2017-07-06 13:11:04

标签: c#

iam to Unable将'HtmlAgilityPack.HtmlDocument'类型的对象强制转换为'mshtml.IHTMLDocument2'

HTMLDocument doc = new HTMLDocument();
IHTMLDocument2 doc2 = (IHTMLDocument2)doc;    

2 个答案:

答案 0 :(得分:0)

为了将A类型转换为B类型,以下其中一项应为真

  • 类型A应该从类型B继承,或者如果它是一个接口,它应该实现类型B。在这种情况下,隐式转换将起作用
  • 类型B应继承自A类型,而您投射的变量应包含B类型的实例。
  • 执行转换的任何一种类型都应该定义explicit operator

如果没有,那么您将获得运行时异常。对于HtmlAgilityPack.HtmlDocumentmshtml.IHTMLDocument2类型,不满足这两个条件。

更新:好像您有拼写错误 - 而不是将doc变量声明为HTMLDocument,而是将其声明为HtmlDocument。 C#是一种区分大小写的语言。

进一步阅读:Casting and Type Conversions (C# Programming Guide)

答案 1 :(得分:-1)

这是因为HTMLDocument没有实现IHTMLDocument2所以没有已知的路径来执行演员。