Мне нужно создать сборку .NET, которая видна как COM-объект через 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?