Tôi có một đối tượng động (thực ra là json) mà tôi chuyển vào bộ điều khiển MVC WebApi của tôi.Đếm đối tượng trong đối tượng ẩn danh động (C#)
Đối tượng json chứa nhiều danh sách trong một đối tượng ẩn danh được gửi tới bộ điều khiển từ ứng dụng khác qua client.PostAsJsonAsync("myapiurl", objectGraph)
.
Những gì tôi cần làm để xác thực đối tượng ở phía MVC, là lấy số lượng đối tượng trong mỗi danh sách. Tôi có thể truy cập danh sách động qua mydynamicobject.mylist
và các mục riêng lẻ qua mydynamicobject.mylist[index]
nhưng tôi dường như không thể nhận được số lượng mydynamicobject.mylist
.
Những gì tôi đã cố gắng cho đến nay: phương pháp khuyến nông
- LINQ - không hoạt động trên động
Enumerable.Count(mydynamicobject.mylist)
- không thể suy ra loại
Bất cứ ý tưởng khác? Số đếm thực sự có sẵn trong đối tượng động base
nhưng rõ ràng là không thể truy cập dưới dạng thuộc tính. Cứu giúp!
này hoạt động bây giờ:
// This is a MVC/WebApi method
public dynamic Post(dynamic mydynamicobject)
if (((ICollection)mydynamicobject.mylist).Count == 0)
{
// do something
}
Mã sẽ gửi các đối tượng động (ứng dụng khác nhau):
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;
Tại thời điểm nào thì 'mydynamicobject.mylist' không thành công - thời gian biên dịch hoặc thời gian thực thi? –
Tôi chỉ không thể nhận được số lượng danh sách trong đối tượng động. Sự thất bại phụ thuộc vào những gì tôi cố gắng. Enumerable.Count sẽ nói rằng nó không thể suy ra kiểu và xác định nó một cách rõ ràng. – Alex
Xin lỗi, tôi có nghĩa là với 'Enumerable.Count' - là lỗi tại thời gian thực hiện, hoặc thời gian biên dịch? * Thời gian thực thi 'mydynamicobject.mylist' là gì? –