在使用 GetProperties 获取 class 上的属性列表后,如何获取父 属性 的 class 类型?

How to I get the parent property's class type after using GetProperties to get a list of properties on a class?

我正在使用 GetProperties 获取 class 的属性列表。

Dim properties As List(Of PropertyInfo) = objType.GetProperties(BindingFlags.Instance Or BindingFlags.Public).ToList()
For Each prop As PropertyInfo In properties
    'how do I get the parent class type of the prop (level up in hierarchy from property's ReflectedType)?
Next

如何让父级 class 比当前 属性 的 ReflectedType 高一级?请注意,此 class 可以有多个父级别。我不想要当前 属性 的 class 的 BaseType,而是 属性 的 ReflectedType 层次结构中的下一个级别因为 属性 可能有几层深。

我会尝试这样的方法 - 基本上是沿着继承树向上循环...

Public Function WalkInheritanceFromProperty(pi As PropertyInfo) As List(Of Type)
   Dim currentType As Type = pi.ReflectedType
   Dim parentType As Type
   Dim lst As New List(Of Type)

   Do
      parentType = currentType.BaseType
      If Not parentType Is Nothing Then lst.Add(parentType) Else Exit Do
      currentType = parentType
   Loop While Not parentType Is Nothing
   Return lst
End Function

以下是一些可能有用的信息:https://msdn.microsoft.com/en-us/library/system.type.basetype(v=vs.110).aspx