我正在为REST WCF服务创建通信库。通信类将对象作为参数进行序列化,并对REST服务URL发出POST请求并等待响应。之后,响应被反序列化并返回。我有一个复合类型作为响应类。这个类有三个字段,其中一个是List<T>
,其中T
是另一个类。问题是它的反序列化过程对两个字段工作正常,但是作为List的字段总是生成一个空列表。 Web服务逻辑没有问题。
public class Communicate<RequestType, ResposeType>
where ResposeType : class
where RequestType : class
{
public ResposeType CommunicateSvr(RequestType _parameter, string methodName, string serverIp)
{
DataContractJsonSerializer obj;
WebClient Proxy1 = new WebClient();
Proxy1.Headers["Content-type"] = "application/json";
MemoryStream ms = new MemoryStream();
DataContractJsonSerializer serializerToUplaod = new DataContractJsonSerializer(typeof(RequestType));
serializerToUplaod.WriteObject(ms, _parameter);
byte[] data = Proxy1.UploadData(serverIp + methodName, "POST", ms.ToArray());
Stream stream = new MemoryStream(data);
obj = new DataContractJsonSerializer(typeof(ResposeType));
ResposeType _respons = obj.ReadObject(stream) as ResposeType;
return _respons;
}
}
班级要求
public class GetTransactionReq
{
public string token { get; set; }
public string fromDate { get; set; }
public string toDate { get; set; }
public int page { get; set; }
}
班级回应
public class GetTransactionsPENALTY
{
public bool test1 { get; set; }
public int test2 { get; set; }
public int test3 { get; set; }
public int test4 { get; set; }
public List<MinPenaltyTransaction> list { get; set; }
}
我做错了什么或者我应该改变什么? 提前致谢