Приведение Class/Object в C#/JavaScript

Каким образом на стороне .Net можно создать объект таким образом, чтобы после получения его из COM компонента можно было бы обращаться к свойствам возвращенного объекта на JavaScript.

Нравится

10 комментариев

Думаю, вот этот пример вам поможет

Спасибо, Павел! Но это не совсем то, что мне надо. Я уже имел похожую проблему с типом данных Scripting.Dictionary при разработке под C#, но она решилась подключением нужного пространства имен.

Думаю, что в .Net имеются типы данных аналогичные Object, которые позволят мне не создавать новый компонент под каждый мало-мальски сложный объект.

Принял, Павел, ваш вариант как рабочий. Спасибо!

Похожий вопрос! Как из COM Объекта вернуть Array. Если создать Array на c# и вернуть его javascript, то отсутствует свойство lenght.

Геннадий, а тип массив? Если да, то свойство length (либо метод size()) автоматом сгенерируются.
При обращении array.length - ошибка?

Массив создаю под .NET сл. образом (более сложные коллекции пробовал, но это полный фейл):

var Array = new object[size];

затем определяю набор значений для моего Array и записываю в свойство, которое будет доступно из COM объекта.

В JavaScript отладчик для Array.lenght определяет и тип и значение = undefined. А для самого массива тип определен как: "Массив Variant". В качестве значения показывает - {...} указывая на то, что это объект.

Вот это Вам должно помочь:

http://www.community.terrasoft.ru/forum/topic/8703

Пробовал создавать индексатор сразу же после того как ничего не получилось с прямой передачей массива. К сожалению не помогло. Сейчас чтобы упростить пример попробовал вставить код по ссылке, но результат тот же.
Индексатор на стороне JavaScript не откликается на обращение типа

...
var Value = Obj[i];
...

Поскольку кому-то ваш пример помог делаю вывод, что либо проблем в версии (у меня - 3.2.0.86), либо в прямизне рук. Кстати, если важно, то ОС - Windows 7.

А если так:

var Value = Obj.Items(1);
var Value = Obj.Items[1];
var Length = Obj.Items.length;
Показать все комментарии