Эта статья является зеркальной статьёй машинного перевода, пожалуйста, нажмите здесь, чтобы перейти к оригиналу.

Вид: 17689|Ответ: 4

[Новый выпуск] Проблема C# Winform Call JS

[Скопировать ссылку]
Опубликовано 18.02.2020 10:30:34 | | |
Схема вызова на C# в JS, найденная в Интернете  
   публичная строка GetTimeByJs()
        {
            Тип obj = Type.GetTypeFromProgID("ScriptControl");
            если (obj == null) возвращает null;
            object ScriptControl = Activator.CreateInstance(obj);
            OBJ. InvokeMember("Language", BindingFlags.SetProperty, null, ScriptControl, new object[] { "JavaScript" });
            строка js = "function time(a, b, msg){ var sum = a + b; return new Date().getTime() + ': ' + msg + ' = ' + sum }";
            OBJ. InvokeMember("AddCode", BindingFlags.InvokeMethod, null, ScriptControl, new object[] { js });
            Вернуть OBJ. InvokeMember("Eval", BindingFlags.InvokeMethod, null, ScriptControl, new object[] { "time(1, 2, '1 + 2')" }). ToString();
        }   


Тест в порядке.
time(1, 2, '1 + 2'), где параметры, передаваемые в (число 1, число 2, строка 1+2).
Но возникает вопрос: новый объект[] { "time(1, 2, '1 + 2')" }, если аргумент метода JS относится к типу byte[], как его следует записывать при вызове?





Предыдущий:SQLyog-12.0.9-0 с регистрационным кодом
Следующий:Обзор загрузки ресурсов
Опубликовано 18.02.2020 10:56:17 |
Типы данных JavaScript можно разделить на две категории:

примитивный тип: например, неопределённый, нулевый, булевый, числовый, строковый
Значение типа ссылки, то есть тип объекта: тип объекта, такой как объект, массивы, функция, дата



Аргументы методов JS не содержат байта[], всё является объектом
Используйте Jurassic для выполнения js-функций в .net
https://www.itsvse.com/thread-4303-1-1.html
(Источник: Architect_Programmer)


 Хозяин| Опубликовано 18.02.2020 14:10:18 |
Сяо Чжажа Опубликовано 2020-2-18 10:56
Типы данных JavaScript можно разделить на две категории:

примитивный тип: например, Неопределённый, Нуль, Булевый, Онемб...

Ао такойЯ мало что знаю о JS.
Если
Предположим, что параметр временной функции js — это массив
function time(Array ){....................}

Следуйте последнему предложению этой функции C#
Вернуть OBJ. InvokeMember("Eval", BindingFlags.InvokeMethod, null, ScriptControl, new object[] { "time(????)" }). ToString();

Я хочу пройти Массив   
var mycars = новый Array();
mycars[0] = «a»;
mycars[1] = «b»;
mycars[2] = «c»;

Если вы вызываете только JS в этой реализации кода на C#, вас не интересуют другие методы кода. Это в этом коде C#??? Как должны быть прописаны параметры?
Опубликовано 18.02.2020 14:17:06 |
zncliving Опубликовано 2020-2-18 14:10
Ао: Верно, я мало что знаю о JS.
Если
Предположим, что параметр временной функции js — это массив

Ну, я могу только давать идеи, а не помогать писать код

Вам всё равно нужно самостоятельно изучить код
 Хозяин| Опубликовано 18.02.2020 14:35:32 |
Сяо Чжажа Опубликовано 2020-2-18 14:17
Ну, я могу только давать идеи, а не помогать писать код

Вам всё равно нужно самостоятельно изучить код

Хорошо, я ищу информацию
Отказ:
Всё программное обеспечение, программные материалы или статьи, публикуемые Code Farmer Network, предназначены исключительно для учебных и исследовательских целей; Вышеуказанный контент не должен использоваться в коммерческих или незаконных целях, иначе пользователи несут все последствия. Информация на этом сайте взята из Интернета, и споры по авторским правам не имеют отношения к этому сайту. Вы должны полностью удалить вышеуказанный контент с компьютера в течение 24 часов после загрузки. Если вам нравится программа, пожалуйста, поддержите подлинное программное обеспечение, купите регистрацию и получите лучшие подлинные услуги. Если есть нарушение, пожалуйста, свяжитесь с нами по электронной почте.

Mail To:help@itsvse.com