3

私は Jint を使用していますが、C# の観点から、定義済みのすべての変数と関数をスクリプトのグローバル スコープで使用できるようにする方法があるかどうか疑問に思っています。

たとえば、ファイル「test.js」に次の Javascript コードがあるとします。

function globalFunc(a, b) {
    var localVar = a + b;
    return localVar;
}

var globalVar = 5;

...そして、次のC#コードが与えられます(Jint 2.4.0を使用):

Jint.Engine engine = new Jint.Engine();
engine.Execute(System.IO.File.ReadAllText("test.js");

// the following method call do not exist in Jint, just here for example...
JsValue[] variables = engine.GetGlobalScopeVariables();

次に、変数に 2 つの値、つまり「Function」型の「globalFunc」という名前の変数と「Number」型の「globalVar」という名前の変数が含まれることを期待します。

予想される答えは、Jint のハッキングにつながる可能性があります。私もそれに対してオープンです。

ありがとう!

4

1 に答える 1

1

変数と関数は、engine.Global.Properties でアクセスできます。ただし、「システム変数」も保持します。

スクリプトを実行した後の辞書のエントリを実行前のエントリと比較することで、追加された変数と関数に関する情報を取得できます。

于 2015-08-25T07:56:41.927 に答える