obj.GetType().GetProperties()
does not return a PropertyDescriptorCollection
, it returns a System.Reflection.PropertyInfo[]
. The PropertyInfo
class does, as you suggest, represent only actual properties created on the object. A PropertyDescriptor
is either a custom concrete child of the PropertyDescriptor
class (implemented by the type defining the custom descriptor), or is an instance of the sealed internal class ReflectPropertyDescriptor
that uses the PropertyInfo
class to provide dynamic invocation of the property.
So for a class that does not define a custom descriptor, you will functionally get the same objects back, though the PropertyDescriptor
is abstracting away the PropertyInfo
.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…