我应该在.NET中使用哪个集合接口进行COM-interop?

Jea*_*nal 8 .net vb6 com-interop

这是我之前的问题的后续内容,但您不需要阅读它来理解那个问题.

我正在设计.NET中的接口,它将从COM应用程序(主要是VB6,但Visual C++ 6也是一种可能性)中使用,我想使用Collection类型作为接口中方法的参数和返回类型.

问题:

  1. 当VB6内置集合类型(数组,集合,字典)通过互操作时会发生什么?我目前的猜测是:

    • 数组 - > System.Array
    • 收藏 - > Microsoft.VisualBasic.Collection
    • 词典 - > System.Collections.Hashtable

    那是对的吗?

  2. 我应该使用哪些接口作为返回类型?IEnumerable,ICollection,IList,IDictionary?我是否能够在VB6中执行For Each迭代这些接口?我应该使用接口的通用或非通用变体吗?

Ric*_*ner 1

我认为 Codeproject 上的这篇文章将涵盖您有关互操作的大部分问题

https://web.archive.org/web/20181009002630/https://www.codeproject.com/Articles/990/Understanding-Classic-COM-Interoperability-With-NE

- http://www.codeproject.com/KB/COM/cominterop.aspx