在将对象转换为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();
答案 0 :(得分:2)
正如错误信息所说的那样。 oTab
中的对象未实现IEnumerable
。无论什么推理让你认为它确实存在,都是错误的。
首先检查oTab
的值。