所以我现在所拥有的是这样的:
PropertyInfo[] info = obj.GetType().GetProperties(BindingFlags.Public);
其中
obj
是某个对象。问题是我想要的某些属性不在
obj.GetType()
中,它们位于更高级的基类之一中。如果我停止调试器并查看obj,则必须挖掘一些“基本”条目以查看要获取的属性。是否可以设置一些绑定(bind)标志以使其返回那些绑定(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/