5

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

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

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

我需要一种方法来过滤掉基类属性,并且只取回我调用获取属性的类型的属性。

我认为这类似于我只从给定的基本类型获取基本类型的子类,不包括基本类型。

Assembly.GetAssembly(baseType).GetTypes().Where(type => type.IsSubclassOf(baseType)).ToList()
4

2 回答 2

11

BindingFlags.DeclaredOnly在您的呼叫中使用Type.GetProperties

var properties = Type.GetProperties(BindingFlags.DeclaredOnly | 
                                    BindingFlags.Public |
                                    BindingFlags.Instance);
于 2009-08-18T14:36:46.213 回答
2

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

于 2009-08-18T14:37:29.037 回答