J'essaye d'écrire un DisplayNameAttribute fortement typé et localisable, mais je n'arrive pas à le compiler. Ce que je voudrais faire mes propriétés ViewModel est quelque chose commeUn DisplayNameAttribute fortement typé et localisable
[LocalizedDisplayName<HomeResources>(r => r.WelcomeMessage)]
qui en fait la même chose que
[DisplayName("Welcome to my site!")]
sauf le message est localisé. Cependant, je ne peux pas obtenir le fonctionnement du constructeur générique (comment fournir des arguments de type à un constructeur?) Ni le choix de la chaîne à utiliser. Le constructeur actuel ressemble à ce
public class LocalizedDisplayNameAttribute<TResource> : DisplayNameAttribute
{
public LocalizedDisplayName(Expression<Func<TResource, string>> resource)
{ // ...
mais le compilateur se plaint que l'argument d'entrée est un temps de compilation constante, donc apparemment cette façon de le faire est pas valide.
Existe-t-il un moyen d'obtenir un attribut localisé fortement typé pour le nom d'affichage? Y en a-t-il déjà un là-bas?
OK. Savez-vous s'il existe une autre façon de rendre l'attribut de nom d'affichage fortement typé? –