2016-11-08 3 views
0

개발자가 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"); 

가 나는 JsValue 또는 그러나 방법은 예외를 throw 데이터가 포함 된 다른 객체를 가질 수 그것에게 C#을 변수 "결과를"싶습니다해야 하 마지막 줄에 IConvertable을 구현하십시오.

나는 "콜백"적절한 유형의 대리자로 설정되어 있는지 확인할 수 있습니다

: Jint.Native.JsValue의 lambda_method (System.Runtime.CompilerServices.Closure, 선택 System.String)}

내가이 없습니다 문제는 내가 다시 NULL을 전달하면. 나는 작은 조각이 있다고 확신한다. (헤드 아웃은 일단 알아 낸다.) 누락 된 조각은 ...

답변

0

변경 JsValue에서 System.Dynamic.ExpandoObject으로 변경한다. 이 유형은 result이며 안전하게 IDictionary<string, object>으로 전송할 수도 있습니다.