Heim > Backend-Entwicklung > C++ > Wie kann ich JavaScript-Code in C# analysieren und ausführen?

Wie kann ich JavaScript-Code in C# analysieren und ausführen?

Linda Hamilton
Freigeben: 2024-12-31 05:33:09
Original
609 Leute haben es durchsucht

How to Parse and Execute JavaScript Code within C#?

So analysieren und führen Sie JS in C# aus

Der bereitgestellte C#-Code enthält eine Klasse, ScriptEngine, die als Wrapper für Windows dient COM-Komponenten der Script Engine. Es ermöglicht sowohl 32-Bit- als auch 64-Bit-Umgebungen und ermöglicht Ihnen das Parsen und Ausführen von JavaScript-Code.

Das Codebeispiel bietet verschiedene Möglichkeiten zur Interaktion mit der Skript-Engine:

Direkt Ausdrucksauswertung:

Console.WriteLine(ScriptEngine.Eval("jscript", "1+2/3"));
Nach dem Login kopieren

Dies wertet den angegebenen JavaScript-Ausdruck aus und gibt das Ergebnis aus (1.66666666666667).

Funktionsaufruf mit optionalen Argumenten:

using (ScriptEngine engine = new ScriptEngine("jscript"))
{
  ParsedScript parsed = engine.Parse("function MyFunc(x){return 1+2+x}");
  Console.WriteLine(parsed.CallMethod("MyFunc", 3));
}
Nach dem Login kopieren

Dies definiert eine JavaScript-Funktion, analysiert sie und ruft die Funktion mit dem Argument 3 auf. Drucken des Ergebnisses (6).

Funktionsaufruf mit benannten Elementen und optional Argumente:

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; }
}
Nach dem Login kopieren

Dieses Beispiel demonstriert die Verwendung benannter Elemente, die die Emulation/Implementierung von HTML-DOM-Elementen ermöglichen. Es legt ein benanntes Element „My“ mit einer Eigenschaft „Num“ fest, die auf 4 gesetzt ist, und ruft die Funktion mit dem Argument 3 auf, wodurch das Ergebnis (10) ausgegeben wird.

Das Beispiel zeigt auch, wie stattdessen eine CLSID verwendet wird eines Skriptsprachennamens, um die schnelle IE9-JavaScript-Engine „Chakra“ zu nutzen:

using (ScriptEngine engine = new ScriptEngine("{16d51579-a30b-4c8b-a276-0ff4dc41e755}"))
{
    // continue with chakra now
}
Nach dem Login kopieren

Der vollständige Quellcode für die ScriptEngine-Klasse und Beispielverwendungen werden als Referenz bereitgestellt. Es enthält zusätzliche Funktionen wie:

  • Abrufen und Festlegen von Eigenschaften
  • Behandlung von Skriptausnahmen
  • Hinzufügen benannter Elemente auf Stammebene zum Namensraum der Skript-Engine

Das obige ist der detaillierte Inhalt vonWie kann ich JavaScript-Code in C# analysieren und ausführen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage