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

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/

10-12 21:36