Maison > développement back-end > C++ > Comment analyser et exécuter du code JavaScript en C# ?

Comment analyser et exécuter du code JavaScript en C# ?

Linda Hamilton
Libérer: 2024-12-31 05:33:09
original
610 Les gens l'ont consulté

How to Parse and Execute JavaScript Code within C#?

Comment analyser et exécuter JS en C#

Le code C# fourni comprend une classe, ScriptEngine, qui sert de wrapper autour de Windows Composants COM du moteur de script. Il facilite les environnements 32 bits et 64 bits et vous permet d'analyser et d'exécuter du code JavaScript.

L'exemple de code propose différentes manières d'interagir avec le moteur de script :

Direct évaluation de l'expression :

Console.WriteLine(ScriptEngine.Eval("jscript", "1+2/3"));
Copier après la connexion

Ceci évalue l'expression JavaScript donnée et imprime le résultat (1.66666666666667).

Appel de fonction, avec des arguments facultatifs :

using (ScriptEngine engine = new ScriptEngine("jscript"))
{
  ParsedScript parsed = engine.Parse("function MyFunc(x){return 1+2+x}");
  Console.WriteLine(parsed.CallMethod("MyFunc", 3));
}
Copier après la connexion

Ceci définit une fonction JavaScript, l'analyse et appelle la fonction avec l'argument 3, impression du résultat (6).

Appel de fonction avec éléments nommés, et facultatif arguments :

using (ScriptEngine engine = new ScriptEngine("jscript"))
{
    ParsedScript parsed = engine.Parse("function MyFunc(x){return 1+2+x+My.Num}");
    MyItem item = new MyItem();
    item.Num = 4;
    engine.SetNamedItem("My", item);
    Console.WriteLine(parsed.CallMethod("MyFunc", 3));
}

[ComVisible(true)] // Script engines are COM components.
public class MyItem
{
    public int Num { get; set; }
}
Copier après la connexion

Cet exemple démontre l'utilisation d'éléments nommés, qui permettent d'émuler/implémenter des éléments HTML DOM. Il définit un élément nommé "My" avec une propriété "Num" définie sur 4 et appelle la fonction avec l'argument 3, imprimant le résultat (10).

L'exemple montre également comment utiliser un CLSID à la place. d'un nom de langage de script pour profiter du moteur JavaScript rapide "chakra" d'IE9 :

using (ScriptEngine engine = new ScriptEngine("{16d51579-a30b-4c8b-a276-0ff4dc41e755}"))
{
    // continue with chakra now
}
Copier après la connexion

Le code source complet de la classe ScriptEngine et des exemples d'utilisation sont fournis pour référence. Il comprend des fonctionnalités supplémentaires telles que :

  • Récupération et configuration des propriétés
  • Gestion des exceptions de script
  • Ajout d'éléments nommés au niveau racine à l'espace de noms du moteur de script

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal