Heim >Backend-Entwicklung >C++ >Wie kann ich JavaScript-Code in einer C#-Anwendung analysieren und ausführen?
So analysieren und führen Sie JavaScript in C# aus
In diesem Codebeispiel umschließen wir die Windows-Skript-Engines, um 32-Bit und 64 zu unterstützen -Bit-Umgebungen.
Für Ihren speziellen Fall bedeutet dies, dass Sie dies je nach .JS-Code möglicherweise tun müssen Einige HTML-DOM-Elemente wie „Dokument“, „Fenster“ usw. emulieren/implementieren (mithilfe der Funktion „Benannte Elemente“ mit der MyItem-Klasse. Genau das macht Internet Explorer).
Hier sind einige Beispiel dafür, was Sie damit machen können:
1) Auswertung direkter Ausdrücke:
Console.WriteLine(ScriptEngine.Eval("jscript", "1+2/3"));
wird angezeigt 1.66666666666667
2) 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)); }
Anzeige 6
3) Funktionsaufruf mit benannten Elementen und optionalen Argumenten:
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; } }
Wird angezeigt 10.
Bearbeiten: Wir haben die Möglichkeit hinzugefügt, eine CLSID anstelle eines Skriptsprachennamens zu verwenden, damit wir die neue und schnelle IE9-Javascript-Engine „Chakra“ wiederverwenden können dies:
using (ScriptEngine engine = new ScriptEngine("{16d51579-a30b-4c8b-a276-0ff4dc41e755}")) { // continue with chakra now }
Hier ist die vollständige Quelle:
(siehe bereitgestellt Code)
Verwendung:
Hinweise:
Das obige ist der detaillierte Inhalt vonWie kann ich JavaScript-Code in einer C#-Anwendung analysieren und ausführen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!