Re[2]: использование .NET класса из VBScript
От: AAP  
Дата: 18.02.05 10:09
Оценка:
Здравствуйте, Vi2, Вы писали:

Vi2>Здравствуйте, AAP, Вы писали:


AAP>>Он прекрасно вызывается из VBScript, следующий код -

AAP>>VarType(mq.SomeMethod("1/10/2005", "2/20/2005")) возвращает тип Array и тип эл-та — String (8200). Вызов UBound тоже возвращает корректное значение.

AAP>>Вопрос в следующем — как мне использовать полученный Array в VBScript? (попытка даже присвоить элемент этого массива локальной переменной приводит к Type Mismatch).


Vi2>VBScript имеет только один тип данных — Вариант. Поэтому Вариант, содержащий массив строк, он считает правильным, а вот элементы массива — уже нет, т.к. это не Варианты. Что делать — переписать сервер.


Vi2>MSDN: Visual Basic for Applications Features Not In VBScript

Vi2>

Vi2>The following table lists Visual Basic for Applications Features not in VBScript.
Vi2>...
Vi2>Data Types || All intrinsic data types except Variant, Type...End Type


Спасибо за отвает — на самом деле, когда я из .NET метода возвратил коллекцию (ArrayList), она была смаршалирована в Object и я могу с ней работать в VBScript. Странно только почему не сработал маршалинг для массива, вндь я явно указал MarshalAs(UnmanagedType.IDispatch) — по идее он должен был создать прокси класс с IDispatch интерфейсом и соответственно в VBScript распознаваться как Object. Ну да ладно — это вопрос в другой форум.Еще раз спасибо за ответ.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.