【发布时间】:2019-01-13 03:19:32
【问题描述】:
我尝试根据这些属性的文本命名动态读取属性值。这仅适用于嵌套类。 但是如果有一个嵌套的集合类,我希望能够使用动态 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() ?? "";
}
【问题讨论】:
标签: c# reflection .net-core dynamic-linq .net-core-2.1