Встраивание механизма JavaScript в [закрытую].NET

Многие объяснения уже присутствуют, чтобы объяснить, как это происходит и как это исправить, но вы также должны следовать рекомендациям, чтобы избежать NullPointerException вообще.

См. также: A хороший список лучших практик

Я бы добавил, очень важно, хорошо использовать модификатор final. Использование "окончательной" модификатор, когда это применимо в Java

Сводка:

  1. Используйте модификатор final для обеспечения хорошей инициализации.
  2. Избегайте возврата null в методы, например, при возврате пустых коллекций.
  3. Использовать аннотации @NotNull и @Nullable
  4. Быстрое завершение работы и использование утверждений, чтобы избежать распространения нулевых объектов через все приложение, когда они не должен быть пустым.
  5. Сначала используйте значения с известным объектом: if("knownObject".equals(unknownObject)
  6. Предпочитают valueOf() поверх toString ().
  7. Используйте null safe StringUtils StringUtils.isEmpty(null).

211
задан 3 revs, 2 users 100% 12 March 2014 в 07:19
поделиться

8 ответов

Используйте JSCRIPT.NET для получения библиотеки (dll) js. Тогда сошлитесь на этот dll в своем приложении.NET, и Вы просто там.Договорились!

0
ответ дан 23 November 2019 в 04:33
поделиться

я полагаю, что все главные механизмы JS с открытым исходным кодом (JavaScriptCore, SpiderMonkey, V8 и KJS) обеспечивают API встраивания. Единственным, с которым я на самом деле непосредственно знаком, является JavaScriptCore (который является названием механизма JS жизни SquirrelFish в), который обеспечивает чистый API C. Если не изменяет память (это было некоторое время, так как я использовал.NET).NET имеет довольно хорошую поддержку соединения в API C.

я честно не уверен, на что API для других механизмов похожи, но я действительно знаю, что они все обеспечивают их.

Однако в зависимости от Ваших целей JScript.NET может быть лучшим, поскольку все эти другие механизмы потребуют, чтобы Вы включали их со своим приложением, поскольку ОАО является единственным, которое на самом деле поставлется с ОС, но что ОС является MacOS: D

0
ответ дан olliej 23 November 2019 в 04:33
поделиться

Если язык не является проблемой (любой поиграл в песочнице, написал сценарий одного), тогда существует LUA для.NET . Версия Silverlight платформы.NET также поигралась в песочнице afaik.

5
ответ дан Chris S 23 November 2019 в 04:33
поделиться

Я предполагаю, что я все еще неясен о том, что это - Вы, пытаются сделать, но JScript.NET могло бы стоить изучить, хотя Управляемый JScript кажется, что это может более подходить для Ваших потребностей (это больше похоже на JavaScript, чем JScript.NET).

Лично, я думал, что будет здорово интегрировать V8 так или иначе, но я не закончил загрузку исходного кода; жаль, что у меня не было времени, чтобы на самом деле сделать что-то с ним.

7
ответ дан Jason Bunting 23 November 2019 в 04:33
поделиться

Script# компилирует C# в js и является мозговым ребенком одной из команд ASP.NET. у Rick Strahl также есть некоторые сообщения при встраивании js как механизм исполнения для вычисления выражения.

4
ответ дан Peter 23 November 2019 в 04:33
поделиться

Открытый исходный код Интерпретатор JavaScript Jint ( http://jint.codeplex.com ) делает именно то, что вы ищете.

Изменить:
Проект был полностью переписан и теперь размещен на Github по адресу https://github.com/sebastienros/jint

84
ответ дан 23 November 2019 в 04:33
поделиться

Попробуйте Javascript .NET . Он размещен на GitHub. Первоначально он был размещен на CodePlex, здесь )

Обсуждение проекта: http://javascriptdotnet.codeplex.com/discussions

Он реализует Google V8. Вы можете скомпилировать и запустить JavaScript прямо из кода .NET с ним, а также предоставить объекты CLI, которые также будут использоваться кодом JavaScript. Он генерирует собственный код из JavaScript.

94
ответ дан 23 November 2019 в 04:33
поделиться

Эй, взгляните на Javascript .NET на codeplex ( http://javascriptdotnet.codeplex.com/ ). В версии 0.3.1 есть несколько довольно приятных новых функций, которые, вероятно, вас заинтересуют.

Посмотрите пример кода:

// Initialize the context
JavascriptContext context = new JavascriptContext();

// Setting the externals parameters of the context
context.SetParameter("console", new SystemConsole());
context.SetParameter("message", "Hello World !");
context.SetParameter("number", 1);

// Running the script
context.Run("var i; for (i = 0; i < 5; i++) console.Print(message + ' (' + i + ')'); number += i;");

// Getting a parameter
Console.WriteLine("number: " + context.GetParameter("number"));
4
ответ дан 23 November 2019 в 04:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: