2008-12-24 5 views
3

Je veux spécifier un argument dans un attribut, comme ceci:utiliser un paramètre global comme argument d'attribut

[OutputCache(Duration = GlobalSettings.GlobalVar)] 

Où GlobalVar est une variable je définissais une seule fois (ne se soucient pas où).

L'utilisation d'un paramètre de configuration ne fonctionne pas de toute façon, et je ne peux pas le faire fonctionner avec une classe statique non plus.

Je reçois l'erreur: Un argument d'attribut doit être une expression constante, expression typeof ou un tableau d'expression création d'un paramètre d'attribut de type

Peut-être qu'il est possible d'écrire un emballage personnalisé autour OutputCache, mais qui se sent comme un hack. Est-ce que j'ai râté quelque chose??

+0

Voir http://stackoverflow.com/questions/6665187/how-to-set-dynamic-value-in-my-attribute/6665254#6665254 –

Répondre

6

Le problème est que les valeurs d'attribut doivent être déterminées au moment de la compilation - elles sont intégrées dans l'assemblage. C'est pourquoi vous devez utiliser une expression constante (pas seulement une variable globale - vraiment une constante).

Questions connexes