Cara menghuraikan dan melaksanakan JS dalam C#
Kod C# yang disediakan termasuk kelas, ScriptEngine, yang berfungsi sebagai pembungkus di sekitar Windows Komponen COM Enjin Skrip. Ia memudahkan kedua-dua persekitaran 32-bit dan 64-bit serta membolehkan anda menghuraikan dan melaksanakan kod JavaScript.
Sampel kod menawarkan pelbagai cara untuk berinteraksi dengan enjin skrip:
Terus penilaian ungkapan:
Console.WriteLine(ScriptEngine.Eval("jscript", "1+2/3"));
Ini menilai ungkapan JavaScript yang diberikan dan mencetak hasilnya (1.66666666666667).
Panggilan fungsi, dengan argumen pilihan:
using (ScriptEngine engine = new ScriptEngine("jscript")) { ParsedScript parsed = engine.Parse("function MyFunc(x){return 1+2+x}"); Console.WriteLine(parsed.CallMethod("MyFunc", 3)); }
Ini mentakrifkan fungsi JavaScript, menghuraikannya dan memanggil fungsi dengan argumen 3, mencetak keputusan (6).
Panggilan fungsi dengan bernama item dan hujah pilihan:
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; } }
Contoh ini menunjukkan penggunaan item bernama, yang membolehkan meniru/melaksanakan elemen DOM HTML. Ia menetapkan item bernama "Saya" dengan sifat "Num" ditetapkan kepada 4 dan memanggil fungsi dengan hujah 3, mencetak hasil (10).
Sampel juga menunjukkan cara menggunakan CLSID sebaliknya nama bahasa skrip untuk memanfaatkan enjin JavaScript "chakra" IE9 yang pantas:
using (ScriptEngine engine = new ScriptEngine("{16d51579-a30b-4c8b-a276-0ff4dc41e755}")) { // continue with chakra now }
Kod sumber penuh untuk kelas ScriptEngine dan penggunaan sampel disediakan untuk rujukan. Ia termasuk ciri tambahan seperti:
Atas ialah kandungan terperinci Bagaimana untuk Menghuraikan dan Melaksanakan Kod JavaScript dalam C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!