Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 非原语的RestSharp列表包含反序列化时的所有空值_C#_Entity Framework_Restsharp - Fatal编程技术网

C# 非原语的RestSharp列表包含反序列化时的所有空值

C# 非原语的RestSharp列表包含反序列化时的所有空值,c#,entity-framework,restsharp,C#,Entity Framework,Restsharp,我正在尝试通过RestSharp请求序列化列表。我得到了列表中返回的项目的正确数量,但是它们的值都是空的。我在JsonConvert上尝试了许多不同的Json注释尝试,但这是我最接近工作的尝试 public string updateRewards(List<Reward> rewards) { RestRequest request = new RestRequest(updateRewardsUrl, Method.POST); request.R

我正在尝试通过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; }
}

问题可能是两个不同的
奖励实例导致它无法从一个转换到另一个吗?

第一个端点上的代码保持不变;奖励列表是使用
JsonConvert.SerializeObject(奖励)
序列化的

在第二个端点上,我将
奖励的类型定义为
字符串
,而不是
列表
。它显示为一个转义的json字符串。从这里开始,我显式地使用
JsonConvert.DeserializeObject(rewards)
转换为列表

测试问题,看看它是否能解决我的问题。
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
}
-   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