Тази статия е огледална статия за машинен превод, моля, кликнете тук, за да преминете към оригиналната статия.

Изглед: 17689|Отговор: 4

[Нов брой] C# Winform Call JS проблем

[Копирай линк]
Публикувано в 18.02.2020 г. 10:30:34 ч. | | |
C# схема за обаждане към JS, намерена в интернет  
   публичен низ GetTimeByJs()
        {
            Тип obj = Type.GetTypeFromProgID("ScriptControl");
            ако (obj == null) връща null;
            обект ScriptControl = Activator.CreateInstance(obj);
            OBJ. InvokeMember("Език", BindingFlags.SetProperty, null, ScriptControl, нов обект[] { "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 метода е от тип байт[], как трябва да се запише при извикване?





Предишен: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 ч. |
Xiao Zhazha Публикувано на 2020-2-18 10:56
Типовете данни на JavaScript могат да се разделят на две категории:

примитивен тип: като Undefined, Null, Boolean, Numb ...

Ао е такъвНе знам много за 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 ч. |
Xiao Zhazha Публикувано на 2020-2-18 14:17
Е, мога само да ти давам идеи, не мога да ти помагам да пишеш код

Все пак трябва сам да проучиш кода

Добре, търся информация
Отричане:
Целият софтуер, програмни материали или статии, публикувани от Code Farmer Network, са само за учебни и изследователски цели; Горното съдържание не трябва да се използва за търговски или незаконни цели, в противен случай потребителите ще понесат всички последствия. Информацията на този сайт идва от интернет, а споровете за авторски права нямат нищо общо с този сайт. Трябва напълно да изтриете горното съдържание от компютъра си в рамките на 24 часа след изтеглянето. Ако ви харесва програмата, моля, подкрепете оригинален софтуер, купете регистрация и получете по-добри услуги. Ако има нарушение, моля, свържете се с нас по имейл.

Mail To:help@itsvse.com