转换System.ComObject不再有效

时间:2011-06-16 00:36:42

标签: c# internet-explorer-9 mshtml

我刚刚安装了ie9,现在我的程序使用mshtml的IHTMLStyle不再可以投放。

所以我几乎已经

class Style
{
  mshtml.HTMLStyle mStyle;

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

它曾经工作,但现在mStyle总是最终为null。我尝试做一个显式的强制转换,即(mshtml.HTMLStyle)样式,但最终没有工作,因为它说实际的样式类型是一个System .__ ComObject,当我知道它曾经在我安装ie9之前投射得很好。

这听起来像其他任何人遇到的一样吗?

1 个答案:

答案 0 :(得分:1)

使用以后与'dynamic'绑定 像这样:

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); 
}