【发布时间】:2015-02-04 19:30:17
【问题描述】:
我希望能够将具有多类型列表的对象传递给 web api 调用,但似乎如果我没有明确声明属性,web api 就会忽略数据。
您可以在下面看到,接口用作占位符以允许 C# 中的多类型列表,但似乎我们将 json 字符串传递给 web api,由于 DTO 不匹配,它没有映射值。
即将到来的 DTO:
public class ValueCheckTestDto
{
public List<IValueCheckGroup> Groups { get; set; }
}
使用的类和接口
public class ValueCheck : IValueCheckGroup
{
public ValueCheckOperators Operator { get; set; }
public List<IValueCheckGroup> ValueCheckGroups{ get; set; }
}
public class ValueCheckExpression : IValueCheckGroup
{
public int AsocDataFieldID { get; set; }
public string Operand { get; set; }
}
public interface IValueCheckGroup
{
}
示例 JSON
{
Groups: [{
AsocDataFieldID: 3,
Operand: "2323"
}]
}
更复杂一点的 JSON 字符串版本
{
Groups: [{
Operator: "OR",
ValueCheckGroups: [{
Operator: "OR",
ValueCheckGroups: [{
AsocDataFieldID: 3,
Operand: "test string"
}]
},{
Operator: "AND",
ValueCheckGroups: [{
AsocDataFieldID: 4,
Operand: "test string 2"
}]
}]
}]
}
【问题讨论】:
标签: c# json asp.net-web-api2 dto