Reflection 使用反射获取属性时,如何将搜索限制为仅搜索子类I';我对什么感兴趣?

Reflection 使用反射获取属性时,如何将搜索限制为仅搜索子类I';我对什么感兴趣?,reflection,properties,assemblies,getproperties,Reflection,Properties,Assemblies,Getproperties,在使用反射成功地从程序集中获取特定类型的列表之后,我现在想获取其中每个类型的公共属性 这些类型中的每一个都派生自至少一个基类 我注意到,当我获取类型的属性时,我也从基类获取属性 我需要一种方法来过滤掉基类属性,并且只返回我正在调用get properties的类型的属性 我认为这类似于我从给定的基类型中只得到基类型的子类,不包括基类型 Assembly.GetAssembly(baseType).GetTypes().Where(type => type.IsSubclassOf(base

在使用反射成功地从程序集中获取特定类型的列表之后,我现在想获取其中每个类型的公共属性

这些类型中的每一个都派生自至少一个基类

我注意到,当我获取类型的属性时,我也从基类获取属性

我需要一种方法来过滤掉基类属性,并且只返回我正在调用get properties的类型的属性

我认为这类似于我从给定的基类型中只得到基类型的子类,不包括基类型

Assembly.GetAssembly(baseType).GetTypes().Where(type => type.IsSubclassOf(baseType)).ToList()
在通话中使用:


仅在GetProperties方法中使用BindingFlags.DeclaredOnly绑定标志

@towps-请参阅此处了解更多信息:谢谢各位!我不知道为什么仅仅挂上DeclaredOnly旗并不能给我带来任何东西。似乎你需要公众和实例?DeclareOnly和Public仍然没有得到任何信息。是的,您必须指定Public或NonPublic,以及Static或Instance(或组合)。
var properties = Type.GetProperties(BindingFlags.DeclaredOnly | 
                                    BindingFlags.Public |
                                    BindingFlags.Instance);