Dot-Net

我應該在 .NET 中為 COM 互操作使用哪個集合介面?

  • March 9, 2021

這是我上一個問題的後續內容,但您無需閱讀即可理解該問題。

我正在.NET 中設計一個介面,該介面將從 COM 應用程序(主要是 VB6,但 Visual C++ 6 也是一種可能性)中使用,我想使用 Collection 類型作為介面中方法的參數和返回類型。

問題:

  1. VB6 內置集合類型(數組、集合、字典)在通過互操作時會發生什麼情況?我目前的猜測是:
  • 數組->System.Array
  • 集合->Microsoft.VisualBasic.Collection
  • 字典->System.Collections.Hashtable那是對的嗎?
  1. 我應該使用哪些介面作為返回類型?IEnumerable, ICollection, IList, IDictionary? 我可以在 VB6 中執行 For Each 來遍歷這些介面嗎?我應該使用介面的通用變體還是非通用變體?

我認為這篇關於 Codeproject 的文章將涵蓋您關於互操作的大部分問題

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

引用自:https://stackoverflow.com/questions/2964436