有没有办法使用反射迭代(最好通过 foreach)集合?我正在使用反射迭代对象中的属性,当程序到达集合类型时,我希望它迭代集合的内容并能够访问集合中的对象。
目前,我在我的所有属性上都设置了一个属性,并且在属于集合的属性上将 IsCollection 标志设置为 true。我的代码检查这个标志,如果它是真的,它使用反射获取类型。有没有办法以某种方式在集合上调用 GetEnumerator 或 Items 以便能够迭代项目?
最佳答案
我遇到了这个问题,但我没有使用反射,而是检查它是否是 IEnumerable。所有集合都实现了这一点。
if (item is IEnumerable)
{
foreach (object o in (item as IEnumerable))
{
}
} else {
// reflect over item
}
关于c# - 通过反射访问集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/104603/