1

私は 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 コンソールに「Finished」と表示されますが、「Hello!」を送信する呼び出しが AS3 コンソールへの接続はどこにもありません。flashlog.txt ファイルにもありません。実際、ブラウザがないため、存在する「コンソール」オブジェクトではない可能性があるため、JINTはエラーをスローすると思います。

JINT で実行されている JavaScript からコンソールに送信されたものをトラップするにはどうすればよいですか? SystemConsole 'または何か(System.Consoleではない)を含むJINTダウンロードサイトの例がありますが、これを機能させることに成功していません。JavaScript にデバッグ コードを追加して、VisualStudio のコンソールに表示できるようにしたいと考えています。

何か案は?これにより、私が行っていることのデバッグが非常に困難になっています。. .

前もって感謝します。

4

1 に答える 1

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. . .");
}
于 2012-11-26T21:54:41.733 に答える