反射泛型列表类型的属性

本文关键字:属性 类型 列表 泛型 反射 | 更新日期: 2023-09-27 17:58:42

我有一个类似的类

public class Foo<T>
{
  public List<T> Items{ get; set; }
}

我有一个以上级别的实例,

Foo<Bar> bars = GetBars();

如何使用反射获取Bar的属性?

我试试这个

PropertyInfo[] properties = bars.Items.First().GetType().GetProperties();

但我认为,这不是一个好办法,有更好的办法吗?

反射泛型列表类型的属性

var Properties = bars.GetType().GetGenericArguments()[0].GetProperties();

假设您不知道列表将包含的类型。

如果始终是Bar,则使用typeof(Bar).GetProperties();

try:

var properties = typeof(Bar).GetProperties();