无法将'mshtml.HTMLDocumentClass'强制转换为'mshtml.IMarkupServices'

时间:2012-12-05 14:01:39

标签: c# .net com com-interop mshtml

我在向mshtml.HTMLDocumentClass

投射mshtml.IMarkupServices时遇到问题
IHTMLDocument2 doc = new HTMLDocumentClass();
doc.write(new object[] { item.HTMLBody });
IHTMLTxtRange range = ((IHTMLBodyElement)doc.body).createTextRange();
IHTMLTxtRange baseRange = ((IHTMLBodyElement)doc.body).createTextRange();

var markupServices = (IMarkupServices)doc; // <--- exception is thrown here

相同的代码在一种情况下有效但在另一种情况下抛出异常。 调用是相同的,但在不同的代码位置不会以相同的方式工作。

1 个答案:

答案 0 :(得分:1)

问题在于ApartmentState

thread.SetApartmentState(Thread.CurrentThread.GetApartmentState());