11
votes

C # attribut.isdefinefinhefin () exemple?

quelqu'un peut-il me donner un exemple d'utilisation d'attribut.isdefinefinine () pour vérifier si un attribut personnalisé particulier a été appliqué à une classe donnée?

J'ai vérifié MSDN, mais seulement les possibilités pour les attributs appliqués aux assemblages, aux membres, etc. Je suis également ouvert à des méthodes alternatives pour atteindre la même chose!


0 commentaires

3 Réponses :


2
votes

Il ne semble pas y avoir une surcharge de attribut.isdefinefinine code> qui prend un type code>. frappe>

à la place, vous pouvez appeler type.getCustomattributes code> : P >

if (typeof(SomeClass).GetCustomAttributes(typeof(SomeAttribute), false).Length > 0)


2 commentaires

Merci. Je me demande pourquoi il n'y a pas de surcharge? Je souhaite que travailler avec des attributs était un peu plus propre. Il est tentant d'utiliser des interfaces de marqueur et (soméclasse est somemarkerinterface).


Il est une surcharge, ISDEFINÉ (membreInfo, type) obtient le travail effectué. Surpris de sortir de moi aussi :)



8
votes

Un exemple simple: xxx


2 commentaires

Cela vérifie un membre - Qu'en est-il d'un attribut sur une classe? Peut-être les mêmes œuvres?


C'est très non distusif, la classe de type hérite de MemberInfo. La surcharge de type ISDEfinefinine (membreInfo, type) obtient le travail effectué. Code Snippet mis à jour.



1
votes

Le Type Classe hériter membreInfo .
Par conséquent, vous pouvez utiliser le surcharge qui prend un membreInfo : xxx


0 commentaires