Как передать список (возвращенный в функции VB.net) в VBScript? - PullRequest
0 голосов
/ 20 января 2019

У меня есть системная функция в VB.net, которая возвращает список строк (я отлаживал эту функцию).И сейчас мне нужно вызвать эту системную функцию в VBScript.Как я могу получить этот список строк?

enter image description here

Системная функция VB.net

Public Function someList As List(Of String)
    Return List
End Function

VBScript:

Dim results
Set results = System.someList

For Each result In results
    wscript.echo result
Next

1 Ответ

0 голосов
/ 21 января 2019

Проблема в том, что VBScript не понимает универсальные классы (или проблема в COM), поэтому вам придется преобразовать свой список во что-то неуниверсальное, такое как ArrayList.

У меня была такая же проблема при попытке использовать мою библиотеку C # из VBScript, и я написал простую функцию преобразования (в C #), чтобы преодолеть эту проблему:

    public ArrayList toArrayList(IEnumerable collection)
    {
        var arrayList = new ArrayList();
        foreach (object element in collection)
        {
            arrayList.Add(element);
        }
        return arrayList;
    }

Еще несколько вспомогательных функций, которые мне нужны, чтобы получить вещиРаботу можно найти здесь: ScriptingInteropHelper

...