MVC WebApi コントローラーに渡す動的オブジェクト (実際には json) があります。
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;