Я пытаюсь получить доступ к членам массива, возвращаемого методом COM, из JScript через WSH в Windows 7.
Документация для метода выглядит следующим образом (приведена в качестве примера C#):
public System.Array GetValues();
Таким образом, в соответствии с этим он возвращает .NET System.Array. Это все хорошо и хорошо, но вот мой код:
// report is Scripting.FileSystemObject file handle
// var is a COM object
arr = var.GetValues();
val = ??
report.WriteLine(val);
Вот что я пробовал:
val = arr.Length // produces empty string
val = arr.GetLength() // "Object doesn't support this property or method"
val = arr.GetValue(0) // "Object doesn't support this property or method"
Так что, видимо, это не объект System.Array, потому что методы не работают. Может быть, это объект массива JScript?
val = arr[0] // empty string
val = arr.length // empty string
val = arr.pop() // "Object doesn't support this property or method"
Значит, это тоже не объект Array? Я предполагаю, что это может быть массив встроенных типов:
val = typeof(arr[0]) // "undefined"
val = typeof(arr) // "unknown"
В крайнем случае загрузил его в Vbsedit и поставил там точку останова, а Vbsedit показывает массив с 800 значениями! Я просто понятия не имею, как получить к ним доступ.