我正在使用JINT将javascript文件加载到一个小型C#应用程序中,并使用C#中的一些参数调用许多方法。我想获得这些方法的返回值。这就是我正在做的事情:
JintEngine engine = new JintEngine();
string file = File.ReadAllText(@"C:\thejavascript.js");
engine.Run(file);
Console.WriteLine(engine.CallFunction("themethod"));
javascript方法如下:
function themethod() {
console.log("Hello!");
return "Finished";
}
当我运行上面的代码时,我可以在VisualStudio控制台中看到'已完成',但调用发送'Hello!'无法看到AS3控制台。它甚至不在flashlog.txt文件中。事实上,我认为JINT会抛出错误,因为可能不存在“控制台”对象,因为没有浏览器。
如何从JINT中运行的javascript中捕获发送到控制台的内容? JINT下载站点上有一个有SystemConsole'或者其他东西(不是System.Console)的例子,但是我还没有成功地使用它。我希望能够将调试代码添加到javascript中,并在VisualStudio的控制台中查看它。
有什么想法吗?这使调试我正在做的非常困难。 。
提前致谢。
答案 0 :(得分:2)
在C#中:
JintEngine engine = new JintEngine();
engine.SetFunction("__log", new Action<object>(Console.WriteLine));
var billy = engine.CallFunction("testMethod");
在Javascript中:
var customConsole= {};
customConsole.__log = function(args){ var toCall = '';
for(var i = 0, l = arguments.length; i <l; i++){ toCall += arguments[i] + ' '; }
__log(toCall);};
function testMethod() {
customConsole.__log("Log this. . .");
}