開発者がJavaScript経由でビジネスルールトリガーを拡張できるようにするライブラリがあります。基本的には、開発者が(JavaScriptで)イベントを購読し、デリゲートを「これが起きたときに私に電話する」ように渡すことができる機能があります。JINTのJavascriptコールバックからJSONを渡す
私はこれを成功させることができますが、関数がJSONまたはJavaScriptオブジェクトをC#レイヤーに戻して返すようにしようとしています。
基本的に、このユニットテストのようなコードの機能:
Func<String, JsValue> callback = null;
Func<Func<String, JsValue>, object> registerCallback = (o) => callback = o;
Engine engine = new Engine()
.SetValue("registerCallback", registerCallback)
.Execute("registerCallback(function(parameter) { return { \"passed\": parameter }; });");
Assert.IsNotNull(callback);
var result = callback("test");
私はC#変数「結果」は、データを含むJsValueまたはいくつかの他のオブジェクトを持つことができ、それはしかし、この方法は、例外をスローしたい:必要があります最後の行にIConvertableを実装します。
私は「コールバック」の適切なタイプのデリゲートに設定されていることを確認することができ:Jint.Native.JsValueのlambda_method(System.Runtime.CompilerServices.Closure、可能System.String)}
そして、私が持っていません問題は私がNULLを返す場合。私はいくつかの小さな(headbang一度私はそれを把握していない)欠けている部分があると確信しています...