Ho un enum in cui a ogni membro è applicato un attributo personalizzato. Come posso recuperare il valore memorizzato in ogni attributo?Come ottenere i valori degli attributi personalizzati per le enumerazioni?
In questo momento faccio questo:
var attributes = typeof (EffectType).GetCustomAttributes (false);
foreach (object attribute in attributes)
{
GPUShaderAttribute attr = (GPUShaderAttribute) attribute;
if (attr != null)
return attr.GPUShader;
}
return 0;
Un altro problema è, se non è trovato, cosa devo tornare? 0 è implcità convertibile in qualsiasi enum, giusto? Ecco perché l'ho restituito.
Dimenticato di menzionare, il codice sopra riportato restituisce 0 per ogni membro di enum.
possibile duplicato del [Cosa AttributeTarget dovrei usare per i membri enum?] (Http: // StackOverflow .com/questions/5032774/what-attributetarget-should-i-use-for-enum-members) –
Non è diverso. Qui sto solo cercando di ottenere gli attributi personalizzati impostati su un membro di enum usando la reflection. –
possibile duplicato di [Ottenere attributi del valore di Enum] (http://stackoverflow.com/questions/1799370/getting-attributes-of-enums-value) –