2015-02-06 3 views
2

저는 Jint를 사용하고 있으며 C# 관점에서 스크립트의 전역 범위에서 사용할 수있는 모든 정의 된 변수와 함수를 얻을 수있는 방법이 있는지 궁금합니다.Jint의 전역 범위에서 모든 변수 및 함수 이름을 가져 오는 방법은 무엇입니까?

파일에 다음과 같은 자바 스크립트 코드 "test.js"주어진 예를 들어

:

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

var globalVar = 5; 

... 그리고 (jint를 2.4.0을 사용하여) 다음 C# 코드 제공 :

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(); 

변수에는 "Function"유형의 "globalFunc"변수와 "Number"유형의 "globalVar"변수가 들어 있습니다.

예상 답변으로 인해 일부 Jint 해킹이 발생할 수 있습니다. 나는 그것에 대해서도 개방적이다.

감사합니다.

답변

1

변수와 함수는 engine.Global.Properties에서 액세스 할 수 있습니다. 그러나 '시스템 변수'도 보유합니다.

스크립트를 실행 한 후 사전을 실행하기 전에 항목을 비교하면 추가 된 변수와 함수에 대한 정보를 얻을 수 있습니다.