MVC WebApi 컨트롤러에 전달하는 동적 객체 (실제로 json 임)가 있습니다.동적 익명 객체 (C#) 내의 객체 개수
json 개체에는 client.PostAsJsonAsync("myapiurl", objectGraph)
을 통해 다른 응용 프로그램에서 컨트롤러로 전송되는 익명 개체의 여러 목록이 포함되어 있습니다.
MVC 측에서 객체의 유효성을 검사하려면 각 목록의 객체 수를 가져와야합니다. mydynamicobject.mylist[index]
을 통해 mydynamicobject.mylist
및 개별 항목을 통해 목록에 동적으로 액세스 할 수 있지만 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'의 실행 시간 타입은 무엇입니까? –