我正在尝试在C#应用程序中使用旧的VB库。
这个库有几个类,其中一个特别是有一个方法返回一个自己的实例示例:Posts post = new Posts().GetLast();
Posts类有一个属性Comments,它实际上是object类型。在VB中,我可以像通过Microsoft.VisualBasic.Collection
一样通过Comments属性进行迭代,但是在C#中我不能为了使用它而将属性转换为任何东西。我尝试导入Microsoft.VisualBasic命名空间,并将类型转换为Collection,但它无法返回一个错误,表示System .__ ComObject必须从库中强制转换为特定接口。
在集合中有一些实现接口IComments的对象,我无法转换为接口,因为它是接口的集合。
我也尝试过转换为ICollection(由Microsoft.VisualBasic.Collection
实现的接口)但没有正面结果。
关于如何解决这个问题的任何想法,我解决这个问题的唯一方法是将C#应用程序更改为VB(不是那么困难,但仍然是我宁愿避免的事情)
答案 0 :(得分:0)
通过尝试我能想到的所有接口,使用as
运算符并比较结果null我发现该属性可以转换为IEnumerable(logicaly Microsoft.VisualBasic.Collection
实现{{1} }和ICollection
实现ICollection
)。