Obtenir le type d'une MemberInfo avec réflexion

Je suis à l'aide de la réflexion pour charger un treeview avec la structure de classe d'un projet. Chacun des membres dans une classe ont un attribut personnalisé affecté.

Je n'ai pas de problème à obtenir les attributs d'une classe à l'aide de MemberInfo.GetCustomAttributes() cependant j'ai besoin d'une méthode de travail si un membre de la classe est une classe personnalisée, puis les besoins de l'analyse elle-même pour retourner les attributs personnalisés.

Jusqu'à présent, mon code est:

MemberInfo[] membersInfo = typeof(Project).GetProperties();

foreach (MemberInfo memberInfo in membersInfo)
{
    foreach (object attribute in memberInfo.GetCustomAttributes(true))
    {
        //Get the custom attribute of the class and store on the treeview
        if (attribute is ReportAttribute)
        {
            if (((ReportAttribute)attribute).FriendlyName.Length > 0)
            {
               treeItem.Items.Add(new TreeViewItem() { Header = ((ReportAttribute)attribute).FriendlyName });
            }
        }
        //PROBLEM HERE : I need to work out if the object is a specific type
        //               and then use reflection to get the structure and attributes.
    }
}

Est-il un moyen facile d'obtenir le type de cible d'un MemberInfo instance afin que je puisse gérer de manière appropriée? Je sens que je suis absent quelque chose d'évident, mais je vais en rond à la minute.

OriginalL'auteur GrandMasterFlush | 2013-04-10