2010-06-03 37 views
7

這是從我的previous question後續,但你不需要閱讀它來理解那一個。我正在設計一個接口,將從COM應用程序(主要是VB6,但Visual C++ 6也是一種可能性)中使用,我想使用集合類型作爲參數和返回類型的方法在界面。我應該在.NET中使用哪個集合接口進行COM-interop?

問題:

  1. 發生了什麼VB6內置集合類型(數組,集合,詞典),當他們經過互操作?我目前的猜測是:

    • 陣列 - >System.Array
    • 收藏 - >Microsoft.VisualBasic.Collection
    • 字典 - >System.Collections.Hashtable

    是正確的嗎?

  2. 我應該使用哪種接口作爲返回類型? IEnumerableICollectionIListIDictionary?我能夠在VB6中對For Each進行遍歷這些接口嗎?我應該使用接口的通用變體還是非通用變體?
+0

我的猜測是,VB的集合和字典會去通過COM互操作,並繼續擔任VB集合和字典,就像任何課程通過com互操作一樣。 – Brian 2010-06-04 17:09:02

+0

您可能想查看http://stackoverflow.com/questions/7003844/why-is-it-that-arraylist-works-with-com-interop-but-ilistt-doesnt和http://stackoverflow.com/ question/269581/what-are-alternatives-generic-collections-for-com-interop – nawfal 2013-11-11 07:34:57

回答

3

我認爲這篇文章在CodeProject上涵蓋大多數問題上互操作:)

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

+0

不幸的是,這不是問題的答案。我有點匆忙,現在沒有時間閱讀整篇文章。我將不勝感激一個簡單而具體的答案。 – 2016-09-15 14:59:31

相關問題