【发布时间】:2014-04-10 11:47:47
【问题描述】:
我正在尝试通过 RestSharp 请求序列化列表。我得到了列表中返回的正确数量的项目,但它们的值都是空白的。我在 JsonConvert 上尝试了很多不同的 Json 注释尝试,但这是我最接近的工作。
public string updateRewards(List<Reward> rewards)
{
RestRequest request = new RestRequest(updateRewardsUrl, Method.POST);
request.RequestFormat = DataFormat.Json;
request.AddParameter("rewards", JsonConvert.SerializeObject(rewards));
RestResponse response = (RestResponse)client.Execute(request);
...
}
[JsonObject]
public class Reward
{
[JsonProperty("id")]
public int id { get; set; }
[JsonProperty("reward")]
public string reward { get; set; }
[JsonProperty("title")]
public string title { get; set; }
}
在另一个端点上...
public object Post(UpdateRewardsRequestDTO updateRewardsRequest)
{
...handle request...
}
[Route("/Rewards/updateRewards", "POST")]
public class UpdateRewardsRequestDTO : IReturn<UpdateRewardsResponseDTO>
{
public List<Reward> rewards { get; set; } //different Reward class, but exact same code as above
}
RestRequest 参数示例
- System.Collections.Generic.List<RestSharp.Parameter>
+ [0] {rewards=[{"id":0,"reward":"test","title":"test2"}]} RestSharp.Parameter
在另一个端点收到的示例请求
- updateRewardsRequest
- rewards Count = 1
- [0]
id 0 int
reward null string
title null string
问题可能是Reward 的两个不同实例导致它无法从一个转换为另一个?
【问题讨论】:
-
测试this 问题,看看它是否能解决我的问题。
标签: c# entity-framework restsharp