MVC WebApiコントローラに渡す動的オブジェクト(実際はjson)があります。動的匿名オブジェクト内のオブジェクトをカウントする(C#)
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;
「mydynamicobject.mylist」は何時にコンパイル時または実行時に失敗しますか? –
私は動的オブジェクト内のリストのカウントには到達できません。失敗は私が何を試みるかによって決まります。 Enumerable.Countは、型を推論したり明示的に指定することはできないと言います。 – Alex
申し訳ありませんが、私は 'Enumerable.Count'で意味しました - 実行時のエラーか、コンパイル時ですか? 'mydynamicobject.mylist'の実行時の型は何ですか? –