Hoi Tweakers,
Ik probeer doormiddel van reflection de attributen van mijn class op te halen.
Ik heb op een interface een Attribuut gezet op deze manier:
Een andere class implementeerd deze interface.
Wanneer ik deze dll dynamisch inlaad controleer ik of die de interface IPlugin implementeerd,
zo ja, dan instantieer ik hem en voeg ik hem toe aan een lijst.
Wanneer ik door deze lijst heen loop om de attributen op te halen loop ik met de debugger door deze functie heen:
de object[] categorys bevat altijd 0 items, behalve als ik het attribuut ook nog op de class zet die de plugin implementeerd. Dit is niet de bedoeling omdat ik dus ook het attribuut op de interface erbij wil hebben, weet iemand wat ik fout doe?
De gebruikte programmeertaal is C#.
Ik probeer doormiddel van reflection de attributen van mijn class op te halen.
Ik heb op een interface een Attribuut gezet op deze manier:
C#:
1
2
| [PluginCategory(PluginCategory.Category.All)] public interface IPlugin {} |
Een andere class implementeerd deze interface.
Wanneer ik deze dll dynamisch inlaad controleer ik of die de interface IPlugin implementeerd,
zo ja, dan instantieer ik hem en voeg ik hem toe aan een lijst.
Wanneer ik door deze lijst heen loop om de attributen op te halen loop ik met de debugger door deze functie heen:
C#:
1
2
3
4
| foreach (IPlugin plugin in _Main.Plugins.Values) { object[] categorys = plugin.GetType().GetCustomAttributes(typeof(PluginCategory), true); } |
de object[] categorys bevat altijd 0 items, behalve als ik het attribuut ook nog op de class zet die de plugin implementeerd. Dit is niet de bedoeling omdat ik dus ook het attribuut op de interface erbij wil hebben, weet iemand wat ik fout doe?
De gebruikte programmeertaal is C#.