我在VS2008里引用了一个COM组件(已注册),其中一个对象中有一个object 类型的getItems()方法,文档中说它返回ItemCollection集合,我怎么来拿到其中的每一个项呢?

解决方案 »

  1.   

    foreach(object s in itemCollection)
    {
         // 进行强制转换
    }
      

  2.   

    既然是ItemCollection,就可以用foreach遍历
      

  3.   

    出现以下异常:
     object[] item = (object[])myObj.getItems();System.InvalidCastException: 无法将类型为“System.__ComObject”的 COM 对象强制转
    换为类类型“System.Object[]”。表示 COM 组件的类型实例不能强制转换为不表示 COM
    组件的类型;不过,只要基础 COM 组件支持对接口 IID 的 QueryInterface 调用,就能将
    这些实例强制转换为接口。
      

  4.   

    搞定,用这个
     foreach (object item in (IEnumerable)myobj.getItems())
      

  5.   

    foreach (object item in myobj.getItems())不转也行吧?