我正在尝试将包含 JSON 数据的动态对象转换为自定义 c# 对象并得到以下错误:
RuntimeBinderException Newtonsoft.Json.JsonConvert.DeserializeObject(string, System.Type, params Newtonsoft.Json.JsonConverter[])' 的最佳重载方法匹配有一些无效参数
名为的变量communication
是一个dynamic
对象,包含以下值(JSON 数据):
{
"name": "inGame",
"selected": true,
"image": "assets/img/communication/ingame.png"
}
这是应该将动态转换为自定义 c# 对象的代码:
InGameCommunication inherited = JsonConvert.DeserializeObject(communication, typeof(InGameCommunication),
new JsonSerializerSettings());
类层次结构:
public abstract class Communication
{
public int Id { get; set; }
public string Name { get; set; }
public bool Selected { get; set; }
}
public class InGameCommunication : Communication
{
}
public class SkypeCommunication : Communication
{
public string Username { get; set; }
}