2010-06-01 91 views
3

我目前正在设计一个将被COM对象消费的.NET软件接口 - 特别是VB6。如何操作.NET中的VB6集合?

虽然我已经找到了微软的许多页面,详细说明了如何制作一个COM可互操作的接口,但我目前在设计时使用了Collections:我希望能够使用标准的VB6“Collection对象“ - 这样,我就可以在接口中将这样的集合指定为参数或返回类型,从而简化了客户端使用该接口所需的工作。

预先感谢您。

编辑:我不打算在“真正的工作”.NET程序中使用VB6集合 - 我会尽快转换VB6集合并调用其他方法使用适当的.NET集合。

回答

2

不应使用.NET中的Visual Basic Runtime中的类型,例如Collection Object
相反,您应该尝试在System.Collections namespace中找到最适合您需求的同等课程。看看下面的文章以获得一些指导:

+0

谢谢您的答复。然而,正如我在帖子正文中所说的那样,我想在.NET中定义一个将由VB6程序使用的接口的环境中这样做。 我使用VB6集合的原因是为了使客户端尽可能容易地使用接口,通过在接口中将VB6集合指定为返回类型或参数。 – 2010-06-01 09:13:11

+2

我明白。但重点是你不应该这样做。内置到.NET中的COM互操作层将自动将.NET特定的类型转换为您的等效COM类型,并在两个运行时编组数据。在你的情况下,你可以例如在.NET界面中暴露数组以获得最佳的互操作性。 – 2010-06-01 09:19:42

+2

这是准确的。 .NET集合类可以使用For Each语法在VB6代码中迭代。 – 2010-06-01 10:58:38