System.InvalidCastException:无法将类型为“System .__ ComObject”的COM对象强制转换为接口类型“System.Collections.IEnumerable”

时间:2014-02-20 04:19:22

标签: c# casting automation mshtml

在将对象转换为IEnumerable时,我得到以下异常。

这是我使用VS2008构建的自动化项目的一部分,本来是在IE8上运行,现在我正在尝试使用VS2010并在IE9上运行。

  

System.InvalidCastException:无法转换类型的COM对象   'System .__ ComObject'到接口类型   'System.Collections.IEnumerable'。此操作失败,因为   QueryInterface在具有IID的接口的COM组件上调用   '{496B0ABE-CDEE-11D3-88E8-00902754C43A}因以下原因失败   错误:'没有支持这样的接口(来自HRESULT的异常:   0x80004002(E_NOINTERFACE))'和COM组件不支持   IDispatch ::调用DISPID_NEWENUM。

 HTMLDocument doc = some htmldocument
 IHTMLElement ele = doc.getElementById("some property");

 int iTab = (int)ele.getAttribute("someproperty", 0);
 object oTab = ele.getAttribute("property", 1);

 IEnumerable xyz = (IEnumerable)oTab;
 System.Collections.IEnumerator index = xyz.GetEnumerator();

1 个答案:

答案 0 :(得分:2)

正如错误信息所说的那样。 oTab中的对象未实现IEnumerable。无论什么推理让你认为它确实存在,都是错误的。

首先检查oTab的值。

相关问题