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"));
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)); }
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; } }
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 }
Der vollständige Quellcode für die ScriptEngine-Klasse und Beispielverwendungen werden als Referenz bereitgestellt. Es enthält zusätzliche Funktionen wie:
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!