ホームページ > バックエンド開発 > C++ > C# 内で JavaScript コードを解析して実行するにはどうすればよいですか?

C# 内で JavaScript コードを解析して実行するにはどうすればよいですか?

Linda Hamilton
リリース: 2024-12-31 05:33:09
オリジナル
609 人が閲覧しました

How to Parse and Execute JavaScript Code within C#?

C# で JS を解析して実行する方法

提供された C# コードには、Windows のラッパーとして機能するクラス ScriptEngine が含まれています。スクリプト エンジンの COM コンポーネント。 32 ビット環境と 64 ビット環境の両方を容易にし、JavaScript コードを解析して実行できるようにします。

コード サンプルでは、​​スクリプト エンジンと対話するためのさまざまな方法が提供されています。

直接式の評価:

Console.WriteLine(ScriptEngine.Eval("jscript", "1+2/3"));
ログイン後にコピー

これは、指定された JavaScript 式を評価し、結果を出力します。 (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));
}
ログイン後にコピー

これは JavaScript 関数を定義し、解析し、引数 3 を指定して関数を呼び出します。結果の出力 (6).

による関数呼び出し名前付き項目とオプションの引数:

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; }
}
ログイン後にコピー

この例では、HTML DOM 要素のエミュレート/実装を可能にする名前付き項目の使用方法を示します。プロパティ「Num」を 4 に設定して名前付きアイテム「My」を設定し、引数 3 で関数を呼び出し、結果 (10) を出力します。

このサンプルでは、​​代わりに CLSID を使用する方法も示しています。高速 IE9 "chakra" JavaScript エンジンを利用するためのスクリプト言語名の変更:

using (ScriptEngine engine = new ScriptEngine("{16d51579-a30b-4c8b-a276-0ff4dc41e755}"))
{
    // continue with chakra now
}
ログイン後にコピー

ScriptEngine クラスとサンプルの完全なソース コード用途は参考のために提供されています。これには、次のような追加機能が含まれています。

  • プロパティの取得と設定
  • スクリプト例外処理
  • スクリプト エンジンの名前空間への名前付きルートレベル項目の追加

以上がC# 内で JavaScript コードを解析して実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート