如何在C#中编写可编写脚本的集合

时间:2011-04-07 03:50:23

标签: c# javascript collections vbscript com-interop

我需要创建一个.NET程序集,它通过COM Interop作为COM对象可见,这样它就可以为VBScript或JScript程序提供一个集合。

当我使用像ArrayList这样的简单集合时,它会流经COM互操作,并且可以使用这样的程序在VBScript中迭代:

Dim s, foo
Set foo = CreateObject("Whatever.Collection")
For Each s In foo
    WScript.Echo s
Next

现在,如果不使用ArrayList,我会使用基于通用集合类的somethign,例如List<string>System.Collections.Specialized.StringCollection,这似乎不适用于VBScript。我在For Each循环中遇到错误,比如

  

Microsoft VBScript运行时错误:所需对象:

所以,似乎有一些我在这里遗失的魔法酱。如何使.NET集合流经COM Interop并在VBScript和JScript中正常工作?

1 个答案:

答案 0 :(得分:1)

我开始寻找是否有解决方案,因为我认为不可能。看起来Rick Strahl有solution

修改:这是SO What are alternatives to generic collections for COM Interop?

的另一个解决方案