Je viens d'écumer le web, la MSDN, la FAQ, le forum, et je n'ai pas trouvé de réponse à mes questions, pourtant relativement simples puisqu'elles portent sur le langage C#... Donc je me décide à les poser ici. Si les réponses étaient affichées en évidence sur la page d'accueil de la MSDN je suis prête à copier 100 fois que je suis une andouille. Pas dur, suffit de faire une boucle.
1/ Puis-je imposer à un attribut de n'être utilisé que pour paramétrer des classes qui dérivent d'une certaine autre classe ?
Ex : si je tape le code suivant, le compilateur m'envoie bouler : "Attribute 'System.AttributeUsage' is only valid on classes derived from System.Attribute".
Puis-je moi aussi paramétrer mon attribut LinkedObjectAttribute de manière à obtenir le même genre de message d'erreur si je l'applique à une classe qui n'hérite pas d'une certaine classe ou interface ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 [System.AttributeUsage(AttributeTargets.Class)] public class LinkedObjectAttribute //: Attribute { }
2/ Puis-je imposer à un attribut de n'être utilisé que sur une propriété qui possède un accesseur (get) ?
Je pourrais faire ces vérifications (héritage, présence du get) par réflexion lors de l'exécution, au moment où j'utilise mes attributs dans le code, mais si la vérification pouvait se faire lors de la compilation ça serait bien mieux...
Partager