Tengo una enumeración en la que cada miembro tiene un atributo personalizado aplicado. ¿Cómo puedo recuperar el valor almacenado en cada atributo?¿Cómo obtener valores de atributos personalizados para enums?
Ahora mismo esto:
var attributes = typeof (EffectType).GetCustomAttributes (false);
foreach (object attribute in attributes)
{
GPUShaderAttribute attr = (GPUShaderAttribute) attribute;
if (attr != null)
return attr.GPUShader;
}
return 0;
Otra cuestión es, si no se encuentra, lo que si regreso? 0 es implcity convertible a cualquier enumeración, ¿verdad? Es por eso que devolví eso.
Olvidé mencionar que el código anterior devuelve 0 para cada miembro enum.
posible duplicado de [Lo AttributeTarget debo usar para los miembros de enumeración?] (Http: // stackoverflow .com/questions/5032774/what-attributetarget-should-i-use-for-enum-members) –
No, esto es diferente. Aquí estoy tratando de obtener los atributos personalizados establecidos en un miembro enum que usa la reflexión. –
posible duplicado de [Obtener atributos del valor de Enum] (http://stackoverflow.com/questions/1799370/getting-attributes-of-enums-value) –