2010-04-27 33 views
2

我有一个需要在VB6应用程序和C#类库之间传递对象的开发。这些对象在C#类库中定义,并用作相同库中其他类公开的方法的参数。这些对象都包含简单的字符串/数字属性,因此编组相对来说比较轻松。编组从VB6到C的对象列表#

我们现在需要传递一个包含其他对象列表的对象。如果我在VB6中编写这个代码,我可能会有一个包含集合作为成员变量的类。在C#中我可能有一个List成员变量的类。

是否有可能以VB6应用程序可以填充此内部列表并成功编组它的方式构造C#类?我在这里没有很多经验,但我猜想Id必须使用一组Object类型。

回答

1

您没有太多不错的选择。你不能使用泛型,这会让你忘记以前的ArrayList类。或者一个数组。 COM互操作层将为实现IEnumerable的C#类自动生成COM枚举器,您可以在VB6一侧使用For Each迭代它。同样,它为实现COM枚举器的COM类生成一个IEnumerable。您可以使用C#代码中的foreach来枚举VB6集合。根据创建集合的人选择它们。

+0

这听起来很有趣,深入挖掘我需要明确实现IEnumerable并添加GetEnumerator方法和必要的属性。我想如果我可以一起躲开某种包装类,这可能会飞,谢谢! – Andrew 2010-04-27 15:01:58

+0

@Andrew你真的必须手动实现IEnumerable并添加GetEnumerator吗?你不能只使用一个'List',它隐含地拥有它们吗?我曾认为COM互操作层可以。 – MarkJ 2010-04-28 14:24:59