我的問題是原始的。但它非常有用。我查了Sebastien Ros Jint申請GitHub。如何在使用Jint運行Js代碼時使用GetValues?
我怎樣才能GetValue屬性多次?
GetValues(x,y,z...)
或GetValue("x").GetValue("y").GetValue("z")
。因爲我需要x,y,z ..結果。不僅x值。
我有一個項目,我必須運行JS代碼,但有很多如果比較(小心它不是「如果 - 其他」,有如果,如果,如果繼續...)我有訪問所有if語句結果。我發現有GetValue
方法。但我只能訪問一個值。當我想訪問「y」時,我必須使用GetValue("y")
。但我想在同一時間看到「x」值。也許我希望那GetValues("x","y","z"...)
。
var square = new Engine()
.SetValue("x", 3) // define a new variable
.SetValue("y",4)
.Execute(" var isok1=false; var isok2= false; if(3>1) { x * x; isok1=true; } if(2>1) { y * y }").GetValue("y") // execute a statement
.ToObject() // converts the value to .NET
;
Console.WriteLine(square.ToString());
var square = new Engine()
.SetValue("x", 3) // define a new variable
.SetValue("y",4)
.Execute(" var isok1=false; var isok2= false; if(3>1) { x * x; isok1=true; } if(2>1) { y * y } isok1;").GetCompletionValue() // execute a statement
.ToObject() // converts the value to .NET
;
Console.WriteLine(square.ToString());
和我用它如下:
var engine = new Jurassic.ScriptEngine();
engine.SetGlobalValue("x", 15);
engine.SetGlobalValue("y", 2);
engine.Execute(@" var isok1=false; var isok2= false; if(3>1) { x=x * x; isok1=true; } if(2>1) { y= y * y; isok2=true; } ");
Console.WriteLine(engine.GetGlobalValue<int>("x"));
Console.WriteLine(engine.GetGlobalValue<int>("y"));
Console.WriteLine(engine.GetGlobalValue<bool>("isok1"));
Console.WriteLine(engine.GetGlobalValue<bool>("isok2"));
Console.ReadKey();
QUEST ION:
我該如何做到myproject內部但使用Jint而不是侏羅紀?我需要Jint multiGetValues財產......
你還需要幫助嗎? – Milad 2015-03-27 11:51:55