Wie erhält man benutzerdefinierte Attributwerte für Enums?

Habe ich ein enum, wo jedes Mitglied verfügt über eine benutzerdefinierte Attribut angewendet wird. Wie kann ich den gespeicherten Wert abzurufen, die in jedem Attribut?

Ich jetzt tun:

var attributes = typeof ( EffectType ).GetCustomAttributes ( false );
foreach ( object attribute in attributes )
{
    GPUShaderAttribute attr = ( GPUShaderAttribute ) attribute;
    if ( attr != null )
        return attr.GPUShader;
}
return 0;

Weiteres Problem ist, wenn es nicht gefunden, was soll ich zurückgeben? 0 ist implcity Cabrio irgendeinem enum, richtig? Deshalb habe ich Sie zurückgegeben.

Vergaß zu erwähnen, dass der obige code gibt 0 zurück für jeden enum-Mitglied.

Kommentar zu dem Problem
Nein, das ist anders. Hier bin ich einfach nur zu versuchen, um die benutzerdefinierten Attribute, die auf einem enum-Mitglied mit der spiegelung. Kommentarautor: Joan Venge
mögliche Duplikate von Erste Attribute Enum-Wert Kommentarautor: Roman Starkov

InformationsquelleAutor der Frage Joan Venge | 2011-02-23

Schreibe einen Kommentar