Какой интерфейс коллекции я должен использовать в .NET для COM-взаимодействия? - PullRequest
8 голосов
/ 03 июня 2010

Это продолжение моего предыдущего вопроса , но вам не нужно читать его, чтобы понять тот.

Я разрабатываю интерфейс в .NET, который будет использоваться из приложений COM (в основном VB6, но возможен и Visual C ++ 6), и я хотел бы использовать типы Collection в качестве аргументов и типов возврата для методов в интерфейс.

Вопросы:

  1. Что происходит со встроенными типами коллекций VB6 (массивами, коллекциями, словарями), когда они проходят взаимодействие? Моя текущая догадка такова:

    • массивы -> System.Array
    • коллекций -> Microsoft.VisualBasic.Collection
    • словари -> System.Collections.Hashtable

    Это правильно?

  2. Какие интерфейсы мне следует использовать в качестве возвращаемых типов? IEnumerable, ICollection, IList, IDictionary? Смогу ли я сделать For Each в VB6 для итерации по этим интерфейсам? Должен ли я использовать универсальные или неуниверсальные варианты интерфейсов?

1 Ответ

2 голосов
/ 04 июня 2010

Я думаю, что эта статья о Codeproject охватит большинство ваших вопросов о взаимодействии:)

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

...