所以我现在拥有的是这样的:
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/