我'开发一些WebAPI并且必须返回带有2个标准服务字段的HttpResponseMessage和一个包含数组的字段。像这样:
{
field1:"test",
field2:123,
array:[{},{}]
}
但实际上我需要几个响应,这些响应应该只在数组属性的名称上有所不同:
{
field1:"test",
field2:123,
someArray:[{},{}]
}
and
{
field1:"test",
field2:123,
someOtherArray:[{},{}]
}
数组中的元素类型在每个响应中都是相同的。所以我想为这种类型的响应创建一个类,只需更改其PropertyName。像这样:
public class Response
{
public int field2 { get; set; }
public string field1 { get; set; }
[JsonProperty(PropertyName = ???)]
public IEnumerable<SomeType> Array { get; set; }
}
我该如何实施?
答案 0 :(得分:1)
你也可以考虑使用字典。
[HttpGet, Route("api/yourroute")]
public IHttpActionResult GetSomeData()
{
try
{
var data = new Dictionary<string, dynamic>();
data.Add("field1", "test");
data.Add("field2", 123);
var fieldName = someCondition == true? "someArray" : "someOtherArray";
data.Add(fieldName, yourArray);
return Ok(data);
}
catch
{
return InternalServerError();
}
}