Pour obtenir les propriétés d'un type, nous utiliserons :
Type classType = typeof(TestClass);
PropertyInfo[] properties = classType.GetProperties(BindingFlags.Public | BindingFlags.Instance);
Pour obtenir les attributs définis d'une classe, nous utiliserons :
Type classType = typeof(TestClass);
object[] attributes = classType.GetCustomAttributes(false);
L'indicateur booléen transmis est l'indicateur d'héritage, qui indique si la recherche doit se faire dans la chaîne d'héritage ou non.
Pour obtenir les attributs d'une propriété, nous utiliserons :
propertyInfo.GetCustomAttributes(false);
En utilisant le code Harvard donné ci-dessus :
Type classType = typeof(TestClass);
object[] classAttributes = classType.GetCustomAttributes(false);
foreach(PropertyInfo property in classType.GetProperties(BindingFlags.Public | BindingFlags.Instance))
{
object[] propertyAttributes = property.GetCustomAttributes(false);
Console.WriteLine(property.Name);
}