我想使用DLR從c#執行JavaScript代碼。C#4中的DLR和Javascript解釋?
所以我寫了使用c#
和Jint一個簡單的代碼:
var script = @"
function show()
{
return parseInt('123asd'); //in js it's 123
};
return show();";
var result = new JintEngine().Run(script);
Console.WriteLine(result);
parseInt('123asd')
在JavaScript是:123
但結果我得到的是:
也許我看不到整個圖片,但是如果世界另一端的程序員發給我他的腳本文件,我(和他)會期望結果一致!
如果我錯了,在什麼情況下我會使用在.Net上運行其他代碼? (我將不得不非常非常可疑爲每一行代碼 ...)
或者它可能只是Jint中的一個錯誤? http://jint.codeplex.com/SourceControl/changeset/view/22024d8a6e7a#Jint%2fNative%2fJsGlobal.cs根據javascript規範,它應該返回123而不是NaN http://www.ecma-international.org/ecma -262/5.1/Ecma-262.pdf –
@MarekKembrowski我可以提供1000個以上的例子,這會產生不穩定的結果。 –
所以也許查克拉(IE9引擎和IActiveScript)將爲你工作? http://stackoverflow.com/questions/5939002/will-the-ie10-chakra-jscript-engine-available-as-stand-alone-accessible-from-c –