c# - 您如何使用反射获取类及其基类(在层次结构中向上)的所有属性? (C#)

标签 c# reflection getproperties

所以我现在拥有的是这样的:

PropertyInfo[] info = obj.GetType().GetProperties(BindingFlags.Public);

其中 obj 是某个对象。

问题是我想要的一些属性不在 obj.GetType() 中,它们在更上一层的基类之一中。如果我停止调试器并查看 obj,我必须挖掘一些“基本”条目以查看我想要获取的属性。是否有一些我可以设置的绑定(bind)标志让它返回那些,或者我是否必须递归地挖掘 Type.BaseType 层次结构并对所有这些进行 GetProperties

最佳答案

使用这个:

PropertyInfo[] info = obj.GetType().GetProperties(BindingFlags.Public | BindingFlags.Instance);

编辑:当然正确答案是Jay。 .不带参数的 GetProperties() 等效于 GetProperties(BindingFlags.Public | BindingFlags.Instance | BindingFlags.Static )BindingFlags.FlattenHierarchy 在这里不起作用。

关于c# - 您如何使用反射获取类及其基类(在层次结构中向上)的所有属性? (C#),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/245055/

相关文章:

TypeScript 工厂子类不可分配给类型父类(super class)

c++ - 找出c++中两个对象类之间的继承关系

Java 的编译器不保留通用方法注释?

c# - 使用反射(Type.GetProperties)获取 DependencyProperties?

c# - xmldataprovider 在后面的代码中使用元素值

c# - 使用 c# 和 mono 关闭 linux

c# - `class` 关键字和用户定义的数据类型

c# - 为什么 Task 对象不可重用?