1

我试图理解反射。我正在尝试使用反射来获取对象的属性。我第一次使用

var propertiesForManuallyCreated = typeof(T).GetProperties();

但后来意识到它没有获得基本属性。我试过了

var propertiesForManuallyCreatedBase = typeof(T).BaseType.GetProperties();

但这并没有让我获得基本属性。如何获得基本属性?下面是我说基地时所说的图像。

本地图像

4

1 回答 1

6

您需要使用Type.GetProperties(BindingFlags)值为 的重载BindingFlags.FlattenHierarchy作为参数。

var propertiesForManuallyCreated =
    typeof(T).GetProperties(BindingFlags.FlattenHierarchy);

根据 MSDN:

扁平化层次结构

指定应返回层次结构上的公共和受保护静态成员。不返回继承类中的私有静态成员。静态成员包括字段、方法、事件和属性。不返回嵌套类型。

于 2013-06-24T22:51:42.077 回答