如何将一个DIctionary <>暴露给COM Interop

Tim*_*ong 4 c# generics com-interop

我有一个接口,沿着这些方向定义:

Interface foo
  {
  int someProperty {get; set;}
  Dictionary<string, object> Items;
  }
Run Code Online (Sandbox Code Playgroud)

实现此接口的具体类需要为COM Interop注册.一切都编译好,程序集似乎注册正常,但是当试图创建COM对象时(例如从PowerShell)我得到一个错误.

这似乎与我正在使用的通用Dictionary <>类有关.所以这是一个问题:

  1. 甚至可以通过COM Interop公开泛型集合吗?
  2. 如果是,那怎么办?
  3. 如果不是,那么解决方法是什么?

Bob*_*nny 5

我最后通过谷歌搜索结束了,哈哈,我应该猜到这会来自你.

据我所知,通用COM无法通过COM与标准编组进行编组.我所知道的是C#中的ArrayList变成了COM中的"标准"集合,可以被VBScript,VB,JScript 5.x等使用.但是因为我们正朝着共同的目标努力,所以我要去玩与其他一些聚合类型,看看会发生什么.