2011-06-16 61 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); 
}