IAM到無法轉換類型的「HtmlAgilityPack.HtmlDocument」對象爲類型「mshtml.IHTMLDocument2」無法投射型「HtmlAgilityPack.HtmlDocument」的目的爲類型「mshtml.IHTMLDocument2」
HTMLDocument doc = new HTMLDocument();
IHTMLDocument2 doc2 = (IHTMLDocument2)doc;
IAM到無法轉換類型的「HtmlAgilityPack.HtmlDocument」對象爲類型「mshtml.IHTMLDocument2」無法投射型「HtmlAgilityPack.HtmlDocument」的目的爲類型「mshtml.IHTMLDocument2」
HTMLDocument doc = new HTMLDocument();
IHTMLDocument2 doc2 = (IHTMLDocument2)doc;
它是因爲HTMLDocument
未執行IHTMLDocument2
,因此沒有已知路徑來執行強制轉換。
實施沒有必要 – chandu
在這種情況下,這是因爲沒有明確的運算符定義執行轉換。如果從object1投射到object2,那麼必須在繼承,實現或操作符之類的類型之間存在某種關係,以說明轉換應如何工作。 –
爲了鑄鉛字A
鍵入B
,下列之一應該是真實的
A
應該從B
類被繼承,或者如果它是一個接口,它應該實現類型B
。在這種情況下,隱式轉換將起作用B
應該從類型A
繼承,並且您正在轉換的變量應該包含B
類型的實例。,那麼你會得到一個運行時異常。對於類型HtmlAgilityPack.HtmlDocument
和mshtml.IHTMLDocument2
,兩個條件都不滿足。
UPDATE:好像你有一個錯字 - 而不是聲明doc
變量HTMLDocument
你已經宣佈它爲HtmlDocument
。 C#是一個區分大小寫的語言。
看起來像錯誤很自我描述。你可以不投A型B型,就像你不能用這種方式,我們可以投的system.windowsforms.document 到html的IHTMLDocument2投布爾最新 –
的IHTMLDocument2 DOC =(的IHTMLDocument2)webBrowserDomDocument.Document.DomDocument; 它是可能的,但我是投在HTML AgilityP ack也 – chandu