首頁 >後端開發 >C++ >如何在 C# 應用程式中解析和執行 JavaScript 程式碼?

如何在 C# 應用程式中解析和執行 JavaScript 程式碼?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-12-29 10:37:10248瀏覽

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

如何在C# 中解析並執行JavaScript

在此程式碼範例中,我們包裝Windows 腳本引擎以支援32 位元和64 位元-位環境。

對於您的特定情況,這意味著根據.JS 程式碼,您可能有模擬/實作一些HTML DOM 元素,例如「文件」、「視窗」等(使用「命名項目」功能和MyItem 類。

這裡是一些您可以用它做什麼的範例:

1)直接表達式評估:

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

將顯示1.66666666666667

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

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

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

將顯示6

3) 帶有命名項的函數調用,以及可選參數:

將顯示10.

    編輯:
  1. 我們新增了使用CLSID而不是腳本語言名稱的可能性,因此我們可以重新使用新的快速 IE9“chakra”javascript引擎,例如這個:
  2. 這是完整的來源:
  3. (請參閱提供的code)
用法:

為所需的腳本語言建立ScriptEngine 物件。
  • 使用 Eval 或 Parse 方法來評估或解析腳本文字。
  • 要呼叫方法或存取屬性,請使用由解析。
  • 要設定命名項,請使用 ScriptEngine 的 SetNamedItem 方法。
註解:ScriptEngine 類別是 Windows 腳本引擎的包裝器。 ParsedScript類別表示可以評估的已解析腳本。 命名項目可讓您將物件傳遞給腳本引擎。

以上是如何在 C# 應用程式中解析和執行 JavaScript 程式碼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn