У меня есть следующий метод, который возвращает динамический объект, представляющий IEnumerable<'a>
('a = анонимный тип):
public dynamic GetReportFilesbyStoreProductID(int StoreProductID)
{
Report report = this.repository.GetReportByStoreProductID(StoreProductID);
if (report == null || report.ReportFiles == null)
{
return null;
}
var query = from x in report.ReportFiles
orderby x.DisplayOrder
select new { ID = x.RptFileID, Description = x.LinkDescription, File = x.LinkPath, GroupDescription = x.ReportFileGroup.Description };
return query;
}
Я хочу иметь возможность доступа к свойству Count
этого IEnumerable
анонимный тип.Я пытаюсь получить доступ к вышеуказанному методу, используя следующий код, и он не работает:
dynamic Segments = Top20Controller.GetReportFilesbyStoreProductID(StoreProductID");
if (Segments.Count == 0) // <== Fails because object doesn't contain count.
{
...
}
- Как работает ключевое слово
dynamic
? - Как получить доступ к
Count
свойство IEnumerable
анонимного типа? - Есть ли способ, которым я могу использовать этот анонимный тип, или мне нужно создать пользовательский объект, чтобы я мог вместо этого передать обратно строго типизированный
IEnumerable<myObject>
dynamic
?
Я бы предпочел не делать этого, если смогу, так как этот метод вызывается только в одном месте, а создание одноразового объекта кажется излишним.