2011-06-16 47 views
0

我剛剛安裝了ie9,現在我的程序使用mshtml的IHTMLStyle不再可以播放了。Casting System.ComObject不再有效

,所以我非常有

 
class Style 
{ 
    mshtml.HTMLStyle mStyle; 

    Style(mshtml.IHTMLStyle style) 
    { 
    mStyle = style as mshtml.HTMLStyle 
    } 
} 

,並用來工作,但現在總是mStyle最終被空。我嘗試做一個明確的轉換,即(mshtml.HTMLStyle)風格,但最終無法正常工作,因爲它說實際的風格類型是System .__ ComObject,當我知道在我安裝ie9之前,它已經很好地投射了。

聽起來像其他任何人遇到過的東西?

+1

隨着命名爲風格的一些變化的一切,你的代碼是真的混亂閱讀。 – Amy 2011-06-16 02:56:45

回答

1

使用後用「動態」 這樣的結合:

dynamic mStyle; 
void Stylex(mshtml.IHTMLStyle style) 
{ 
    mStyle = style; 
    string test = ""; 
    //don't work 
    test = (mStyle as IHTMLStyle).border; 

    //work fine 
    test = mStyle.border; 
} 

private void Test() 
{ 
    var doc = (HTMLDocument)this.editorWebBrowser.Document; 
    this.Stylex(doc.body.style); 
}