Lorsque je génère une vue à partir du modèle de liste, je remarque que les noms des colonnes ne sont pas basés sur l'annotation DisplayName(). Je sais comment éditer le modèle de code de list.tt mais je n'ai aucune idée comment récupérer les attributs de DisplayName des propriétés de classe.Génère des en-têtes de colonnes basés sur l'attribut DisplayName?
1
A
Répondre
1
La manière courante d'obtenir l'attribut DisplayName est via la réflexion. Le problème que vous allez avoir est .tt modèles et réflexion ne jouent pas bien ensemble. La réflexion repose sur le chargement du code dans AppDomain. Puisque les fichiers .tt ne chargent pas de code, vous ne pouvez pas les refléter.
Plus d'informations sur cette question, et une solution possible ici:
http://www.olegsych.com/2007/12/how-to-use-t4-to-generate-decorator-classes/
MVC et Visual Studio doit utiliser un certain type d'inspection de code pour générer une partie de l'généré si je regarderais le long de ce chemin , peut-être une regex folle, si vous n'êtes pas en train de résoudre le problème de la réflexion.