Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / JScrit WSH + .Net C# массивы / 5 сообщений из 5, страница 1 из 1
29.06.2007, 17:23
    #34629533
Guest2222
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JScrit WSH + .Net C# массивы
Есть COM-компонетн, написанный на C#. В сценарии для Windows Script Host нужно создать этот объект и вызвать методы используя JScript.

Не получается обработать результаты метода, который возвращает массив строк. Как можно получить доступ к элементам массива?

Отлатчик Visual Studio 2005 при наведении курсора мышки на переменную, в которой должны быть строки показывает возвращаемые элементы правильно.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
using System;

namespace ComInteraction
{
    public interface ITest
    {
        String About { get; }
    }

    public class TestClass : ITest
    {
        public String About
        {
            get
            {
                return "This is TestClass class";
            }
        }

        public string GetString(string val)
        {
            return "This is a val (" + val + ")";
        }

        public string[] GetStrings(string val)
        {
            string[] strings = new string[ 10 ];

            for (int i =  0 ; i <  10 ; i++)
                strings[i] = "This is a val (" + val + ") № " + i;

            return strings;
        }
    }
}


Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
var testObj;
var strBuffer = "123";

testObj = new ActiveXObject("ComInteraction.TestClass");

var string = testObj.GetString(strBuffer);
WshShell.Popup(string); // <---------- Нормально

var strings = testObj.GetStrings(strBuffer);
WshShell.Popup(strings[ 0 ]); // <---------- Ошибка
...
Рейтинг: 0 / 0
02.07.2007, 10:29
    #34631347
1211212
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JScrit WSH + .Net C# массивы
Я так понимаю, вы выставили GetString через свойство класса в интерфейсе, а метод GetStrings в интефрейсе не объявлен - просто не видит.
...
Рейтинг: 0 / 0
03.07.2007, 09:26
    #34633885
Guest2222
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JScrit WSH + .Net C# массивы
Опечатка, конечно же в интерфейсе есть все нужные методы
...
Рейтинг: 0 / 0
04.07.2007, 16:22
    #34638661
Guest2222
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JScrit WSH + .Net C# массивы
Но всё равно не работает
...
Рейтинг: 0 / 0
04.07.2007, 18:25
    #34639166
1211212
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JScrit WSH + .Net C# массивы
Очевидно не понимает .Net - массив.
А наоборот, что-нибудь вроде:
C#
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
public void GetStrings(string val, ref string[] arr)
        {

            for (int i =  0 ; i <  10 ; i++)
                arr[i] = "This is a val (" + val + ") № " + i;
        }

JS - обычный массив:
Код: plaintext
1.
2.
var arr = new Array( 10 );
GetStrings(strBuffer, arr);
JS - SafeArray:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
<SCRIPT LANGUAGE=”VBScript”>
Dim myArray( 10 )
</SCRIPT>
<SCRIPT LANGUAGE=”JavaScript”>
var arr = new VBArray(myArray);
GetStrings(strBuffer, arr);
</SCRIPT>
не предстаавляю как ему сказать ref из JS...

Не пробовали?
...
Рейтинг: 0 / 0
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / JScrit WSH + .Net C# массивы / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]