DataContractJsonSerializer反序列化列表<t>

时间:2015-05-29 08:15:10

标签: c# json rest serialization deserialization

我正在为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; } 
}

我做错了什么或者我应该改变什么? 提前致谢

0 个答案:

没有答案