Je dois créer un attribut personnalisé applicable uniquement aux membres de classe non statiques. Comment puis-je valider cette contrainte sur la compilation d'un projet ou en utilisant des outils d'analyse de code?Validation que Attibute personnalisé est affecté à un membre de classe non statique
Répondre
Il y a no such constraint.
Vous pouvez toujours écrire un événement post-construction qui utilise la réflexion pour vérifier ... Certes, il ne peut être le plus élégant des solutions ....
Pour configurer cela, vous allez dans propriétés du projet, puis l'onglet 'Build Events'. Vous entrez alors la ligne de commande pour l'outil basé sur la réflexion que vous écrivez pour implémenter cette vérification.
Je cela il ya une certaine possibilité d'ajouter une règle personnalisée à l'outil d'analyse de code pour l'automatiser. – klashar
Ce n'est probablement pas ce que vous cherchez, mais il est possible de faire un tel attribut avec PostSharp, vous aurez probablement quelque chose comme ceci:
[Serializable]
public sealed class StaticAttribute : OnMethodBoundaryAspect
{
public override bool CompileTimeValidate(System.Reflection.MethodBase method)
{
return method.IsStatic;
}
le OnMethodBoundaryAspect Wrapps essentiellement votre méthode dans un bloc try/catch, et la méthode de CompileTimeValidate détermine si oui ou non l'attribut est invoquée à l'exécution.
- 1. Que signifie "opérateur = doit être un membre non statique"?
- 2. Référence indéfinie à un membre de classe statique
- 3. Pointeur de fonction C++ (membre de la classe) vers la fonction de membre non statique
- 4. Comment créer un membre d'objet statique de classe?
- 5. variable membre statique d'une classe sous-classée
- 6. Comment initialiser un membre statique
- 7. Utilisation du membre statique d'une classe sur un type dérivé?
- 8. Variable statique/membre
- 9. Accéder à un membre de RootViewController dans une autre classe
- 10. Comment puis-je accéder à un membre statique public d'une classe Java à partir de ColdFusion?
- 11. C++ modèle initialisation pointeur à membre statique
- 12. Pointeur de fonction C++ en tant que membre statique
- 13. Possibilité de valider un paramètre .NET Attibute?
- 14. C++: Masquer le membre statique de base
- 15. C#: Inherited/interface membre statique?
- 16. Définition multiple pour un membre statique?
- 17. PHP print_r et membre statique
- 18. Peupler un conteneur de membre statique dans C++
- 19. Ajout d'un membre personnalisé à un type mappé
- 20. Le passage d'une fonction membre non statique qualifié comme un pointeur de fonction
- 21. C++ appel de méthode Membre statique sur instance de la classe
- 22. comment sérialiser et désérialiser le membre statique
- 23. erreur: demande de membre '..' dans '..' qui est de type non-classe
- 24. Une classe statique est-elle appropriée lorsque l'état est immuable?
- 25. Est-il possible d'appeler une fonction non statique à l'intérieur d'une fonction statique en C#?
- 26. Test d'un événement auquel un EventHandler est affecté
- 27. C++: comment une fonction membre statique publique peut-elle accéder à des variables de membre d'instance privée?
- 28. C++: Pointeur vers la fonction de membre de classe à l'intérieur d'une structure non apparentée
- 29. Appel à une fonction membre xpath() sur un non-objet?
- 30. Accès à la valeur d'une classe statique dans une classe statique
C'est vrai, nous ne pouvons pas utiliser le AttrubuteUsageAttribute à cette fin. – klashar