如何使用泛型类型参数获取类的所有属性

时间:2018-12-05 15:37:36

标签: c# generics getproperties

请参见以下示例。当具有属性类型是带有通用类型参数的类的属性时,无论通用类型参数如何,我如何列出所有这些属性?

$_POST['disp_ch_ids']

1 个答案:

答案 0 :(得分:3)

您可以使用GetGenericTypeDefinition方法来获取通用类型的开放形式,然后将其与VehicleCollection<>(开放形式)进行比较,如下所示:

var vehicleProperties = typeof(Program).GetProperties()
    .Where(p =>
        p.PropertyType.IsGenericType &&
        p.PropertyType.GetGenericTypeDefinition() == typeof(VehicleCollection<>))
    .ToList();

IsGenericType用于确保属性类型是通用的。