【发布时间】:2020-06-17 09:24:27
【问题描述】:
我有一个通用方法
var propertyResolverMethod = _propertyResolver
.GetType()
.GetMethod(
nameof(_propertyResolver.GetEntities),
new[] { typeof(string), typeof(string) })
?.MakeGenericMethod(_itemType);
和调用
var recommendedItems = propertyResolverMethod
?.Invoke(
_propertyResolver,
new object[] { itemId, ResolvedCollectionId });
它在编译时返回一个对象,但在运行时,它返回IQueryable<Item> 这个项目是来自 _itemType 的项目,我们只在运行时找到它的类型,但我知道它在 Item 中有一个集合.RelatedItems 我需要得到。已经尝试过转换为动态,但不适用于我的情况,我知道这可以通过表达式以某种方式解决。
应该像这样可迭代
var itemIds = recommendedItems?.Select(i => i.RelatedItems.Select(s => s.ItemID));
但如果没有适当的演员表,这是不可能的
【问题讨论】:
标签: c# .net reflection