Приведение System.ComObject больше не работает - PullRequest
0 голосов
/ 16 июня 2011

Я только что установил ie9, и теперь моя программа, использующая mshtml IHTMLStyle, больше не может быть приведена.

так что у меня в значительной степени было

class Style
{
  mshtml.HTMLStyle mStyle;

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

и раньше это работало, но теперь mStyle всегда оказывается нулевым. Я попытался сделать явное приведение, то есть стиль (mshtml.HTMLStyle), но в итоге это не сработало, потому что он говорит, что фактическим типом стиля является System.

это звучит как что-то, с чем кто-либо еще сталкивался?

1 Ответ

1 голос
/ 27 июня 2011

Использовать позднее связывание с '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); 
}
...