J'ai donc ajouté avec enthousiasme l'espace de noms System.ComponentModel.DataAnnotations à mon modèle.Lors de la création d'une aide DataGrid, comment accéder aux nouveaux attributs d'annotation de données à l'aide de Reflection?
J'ai ajouté des choses telles que:
[Required] [DisplayName("First Name")]
public string first_name {get;set;}
Je aime vraiment ces attributs parce qu'ils me sauver d'avoir à écrire T4 personnalisé et/ou modifier fortement vues. De cette façon, je peux régénérer une vue confiante qu'il ajoutera les noms d'affichage que je veux, etc.
Le problème est survenu quand j'ai commencé à construire un assistant DataGrid inspiré par celui de ASP.NET MVC2 déchaîné.
Dans cette aide, Stephen utilise la réflexion pour obtenir les en-têtes de colonne.
var value=typeOf(T).GetProperty(columnName).GetValue(item,null) ?? String.Empty;
Eh bien, le problème est que je ne veux pas récupérer le nom de la propriété. Je veux récupérer la valeur de l'attribut DisplayName.
Ma première tentative à ceci était de regarder à l'intérieur de la propriété Attributs de la classe PropertyInfo. Malheureusement, aucune des annotations de données n'apparaît en tant qu'attribut.
Existe-t-il un moyen de récupérer les annotations de données en utilisant la réflexion?
Merci,
Ron