3

Jintでは、JS の .Net クラスにアクセスできます。

JS ファイル コード:

var write = function (msg) {

    var log = System.Console.WriteLine;
    log(msg);
};

C# コード

 Engine jsEngine = new Engine(e=>e.AllowClr());
 string script = System.IO.File.ReadAllText("file1.js");
 jsEngine.Execute(script);
 jsEngine.Invoke("write", "Hello World!");  //Displays in Console: "Hello World!"
  • バックグラウンドで何が起こっているのか理解できませんか?挿入された c# コードを JS ファイルにコンパイルするのはどのコンパイラですか? C# コンパイラまたは JS?
  • JSファイルでC# Listを宣言した場合、生成されるオブジェクトはJSオブジェクトなのかC#オブジェクトなのか?
4

2 に答える 2

1

C# コードを挿入するのではなく、Jint インタープリターは、.NET クラスへの参照であることを認識し、このコードを実行します。Jint は .NET で記述されているため、必要な任意の .NET コードを実行できます。

また、Jint は何もコンパイルせず、すべての JavaScript ステートメントを読み取り、それらを次々に評価して、宣言および使用しているすべての変数、関数、およびその他の JS アーティファクトを追跡します。

于 2016-06-02T21:48:20.903 に答える