Я пытаюсь динамически читать значения свойств на основе текстового именования этих свойств. Это просто работает для вложенных классов.
Но если есть класс вложенной коллекции, я бы хотел иметь возможность выбирать элемент с помощью динамического linq. К сожалению, при чтении в коллекции возвращается
'Целевой объект не является ExpandoObject' (.FirstOrDefault).
Любая идея для редактирования или, возможно, другое решение?
Мой код (.net core 2.1):
string value = string.Empty;
var dataClassProperty = dataClass.GetType().GetProperty(dataClassPropertyName).GetValue(dataClass, null);
if (dataClassProperty is IEnumerable<object>)
{
object nestedPropertyItem = (dataClassProperty as IEnumerable<object>)
.AsQueryable()
.FirstOrDefault(collectionDynamicLinq);
if (nestedPropertyItem != null)
value = nestedPropertyItem.GetType().GetProperty(nestedPropertyName).GetValue(nestedPropertyItem, null)?.ToString() ?? "";
}