Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Menghuraikan dan Melaksanakan Kod JavaScript dalam Aplikasi C#?

Bagaimana untuk Menghuraikan dan Melaksanakan Kod JavaScript dalam Aplikasi C#?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-29 10:37:10243semak imbas

How to Parse and Execute JavaScript Code within a C# Application?

Cara Menghuraikan dan Melaksanakan JavaScript dalam C#

Dalam contoh kod ini, kami membalut Enjin Skrip Windows untuk menyokong 32-bit dan 64 -bit environments.

Untuk kes khusus anda, ini bermakna bergantung pada kod .JS, anda mungkin perlu meniru/melaksanakan beberapa elemen DOM HTML seperti 'dokumen', 'tetingkap', dsb. (menggunakan ciri 'item bernama', dengan kelas MyItem. Itulah yang dilakukan oleh Internet Explorer).

Berikut adalah beberapa contoh perkara yang boleh anda lakukan dengannya:

1) Penilaian ungkapan langsung:

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

akan dipaparkan 1.66666666666667

2) 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));
}

Akan memaparkan 6

3) Panggilan fungsi dengan item bernama dan argumen 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; }
}

Akan dipaparkan 10.

Edit: Kami telah menambah kemungkinan untuk menggunakan CLSID dan bukannya nama bahasa skrip, jadi kami boleh menggunakan semula enjin javascript "chakra" IE9 yang baharu dan pantas, seperti ini:

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

Berikut adalah sumber penuh:

(lihat disediakan kod)

Penggunaan:

  1. Buat objek ScriptEngine untuk bahasa skrip yang diingini.
  2. Gunakan kaedah Eval atau Parse untuk menilai atau menghuraikan teks skrip.
  3. Untuk memanggil kaedah atau mengakses sifat, gunakan objek ParsedScript yang dikembalikan oleh Parse.
  4. Untuk menetapkan item bernama, gunakan kaedah SetNamedItem ScriptEngine.

Nota:

  • Kelas ScriptEngine ialah pembalut di sekeliling Enjin Skrip Windows.
  • Kelas ParsedScript mewakili skrip dihuraikan yang boleh dinilai.
  • Item bernama membolehkan anda menghantar objek ke enjin skrip.

Atas ialah kandungan terperinci Bagaimana untuk Menghuraikan dan Melaksanakan Kod JavaScript dalam Aplikasi C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn