我有一个动态对象(它实际上是 json),我将它传递给我的 MVC WebApi 控制器。
json 对象在一个匿名对象中包含多个列表,这些列表通过client.PostAsJsonAsync("myapiurl", objectGraph)
.
为了在 MVC 端验证对象,我需要做的是获取每个列表中对象的计数。我可以通过动态访问列表mydynamicobject.mylist
和通过单个项目,mydynamicobject.mylist[index]
但我似乎无法获得mydynamicobject.mylist
.
到目前为止我已经尝试过:
- LINQ 扩展方法 - 不适用于动态
Enumerable.Count(mydynamicobject.mylist)
- 无法推断类型
还有其他想法吗?计数实际上在动态对象中正确可用,base
但显然不能作为属性访问。帮助!
这现在有效:
// This is a MVC/WebApi method
public dynamic Post(dynamic mydynamicobject)
if (((ICollection)mydynamicobject.mylist).Count == 0)
{
// do something
}
发送动态对象的代码(不同的应用程序):
HttpClient client = new HttpClient();
client.DefaultRequestHeaders.Accept.Add
(new MediaTypeWithQualityHeaderValue("application/json"));
var objectGraph = new { mylist = new { Id = 1 }, mylist2 = new { Name = "ABC" } };
var r = client.PostAsJsonAsync("api/mycontroller", objectGraph).Result;