public object Evaluate(string code) { string json = Json.Serialize(new RemoteInputBlock { method = "Evaluate", code = code, mem = DS.Serialize() }); string result = RemoteAccess(uri, json); RemoteOutputBlock output = Json.Deserialize <RemoteOutputBlock>(result); if (!string.IsNullOrEmpty(output.err)) { throw new InvalidExpressionException($"failed to evaluate code: {code}, {output.err}"); } try { if (!string.IsNullOrEmpty(output.mem)) { DS = output.mem.Deserialize(); } VAL val = Script.Evaluate(output.ret); return(val.HostValue); } catch (Exception) { throw new Exception($"failed to evaluate code: {code}, {result}"); } }
public void Execute(string code) { string json = Json.Serialize(new RemoteInputBlock { method = "Execute", code = code, mem = DS.Serialize() }); string result = RemoteAccess(uri, json); RemoteOutputBlock output = Json.Deserialize <RemoteOutputBlock>(result); if (!string.IsNullOrEmpty(output.err)) { throw new InvalidExpressionException($"failed to execute code: {code}, {output.err}"); } if (!string.IsNullOrEmpty(output.mem)) { DS = output.mem.Deserialize(); } }