有一个Service Fabric Rest(http)服务,它公开一个POST端点,它接受一个名为Action的合同,该合约具有一个Dictionary。该服务接受Action并调用Service Fabric RPC服务来执行create action操作。
public class Action{
public Dictionary<string, object> actions {get; set;}
}
当为对象类型传递除基元(数组,字典)之外的任何类型时,Rest端点正确地反序列化json,但在尝试使用以下错误消息调用RPC服务时在该位置失败
Newtonsoft.Json.Linq.JToken'是一个不受支持的递归收集数据合约。考虑修改集合'Newtonsoft.Json.Linq.JToken'的定义以删除对它自己的引用。
我们还尝试使用动态和ExpandoObject而不是对象。这似乎也没有帮助。
是否有任何人在将对象或动态类型传递给RPC服务时遇到此问题?
答案 0 :(得分:1)
Service remoting适用于DataContractSerializer。您在服务合同中使用的所有类型都必须可以序列化。
类型var array = [4,5,6,7,8];
var singleVal = 0;
singleVal = array.reduce(function(previousVal,currentVal){
return previousVal + currentVal;
},0);
不是,因为它具有相同类型的属性。