我有一个方法,将IEnumerable
类型的对象作为输入参数。我想枚举枚举,并为每个项目使用反射来获取每个属性的值。
我有以下代码:
protected void WriteData(IEnumerable data)
{
var enumerationTypeInfo = data.GetType();
var itemTypeInfo = enumerationTypeInfo.GetElementType();
...
}
问题是
enumerationTypeInfo.GetElementType()
总是返回null
。特别是,我要将List<Entry>
传递给WriteData
,其中Entry
是我创建的类。当我使用调试器并设置断点时,我可以看到enumerationTypeInfo
正确显示它是Entry
类型的List,但是GetElementType
为什么返回null
呢?谢谢
最佳答案
GetElementType
用于数组,而不是其他通用类。要获取通用类型的通用参数,可以使用 Type.GetGenericArguments
。