2008-12-16 8 views
1

Je me demande s'il est possible de valider les paramètres pour les attributs (personnalisés) .net. Par exemple: Si j'avais un attribut qui prend un entier positif, pourrais-je forcer une erreur de temps de compilation quand une valeur négative est fournie?Possibilité de valider un paramètre .NET Attibute?

[DonkeyAttribute (1)] // OK

[DonkeyAttribute (-828)] // erreur

Dans cet exemple, je pourrais utiliser un entier non signé (mais qui est non conforme cls I beleive?) Recommandations?

Répondre

0

Je ne pense pas que ce soit normalement, cependant l'article this détaille une solution utilisant PostSharp. Je ne sais pas si c'est adapté à votre objectif, mais donnez-le!

1

Vous pouvez appliquer ceci avec des tests unitaires; une solution similaire à celle que j'ai proposée pour this question, peut-être.

0

Directement? Non. Sans réécrire csc ou vbc. La plupart des gens effectueraient cette validation lors de l'exécution.

Cependant, un peu de Googling est venu avec ce blog entry on PostSharp Aspects. Il ne valide pas techniquement à partir du compilateur, mais il fournit une vérification à la compilation. Vous pouvez le vérifier here. D'autres notes sur PostSharp du même auteur peuvent être trouvées here.

0

Vous pouvez créer un attribut personnalisé en héritant de System.Attribute. Dans le constructeur personnalisé, vous devriez être capable de vérifier les paramètres.

Questions connexes