c# - 通过反射访问集合

标签 c# reflection collections

有没有办法使用反射迭代(最好通过 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/

相关文章:

css - 无法让我灵活的动画背景反射工作

java - 使用临时列表时出现 ConcurrentModificationException

c# - 如何发出 default(TimeSpan) 作为可选参数的默认值

c# - 如何迭代通用反射方法?

java - 使用属性子集确定唯一性的不同对象列表

java - 如何按字母顺序对列表进行排序?

c# - 拦截 C# webbrowser 的超链接

c# - 是否可以伪造 Windows 控制台 API?

c# - 如何将相同的依赖关系绑定(bind)到 Ninject 中的多个依赖项?

c# - 无法使用 [FromQuery] ASP Net Core 2 API 绑定(bind)参数