Hasta donde sé, no hay uno específicamente para las constantes enum. Lo más cercano que podría obtener sería probablemente "Campo", que limita el uso a los miembros de campo de una clase o estructura (que las constantes de Enum se tratan como a efectos de los atributos).
EDIT: con lo que la explicación del "por qué" a partir de los comentarios, las constantes de enumeración son exactamente eso, y como tal, sus valores y usos son embedded directly into the IL. por lo tanto, una declaración de enumeración no es realmente muy diferente de la creación de una definición de clase estática con los miembros estáticos como:
public static class MyEnum
{
public const int Value1 = 0;
public const int Value2 = 1;
public const int Value3 = 2;
public const int Value4 = 3;
}
... siendo que deriva de System.Enum la única diferencia que es un tipo de valor en lugar de ser una clase de referencia (no puede crear una estructura estática, ni una estructura indestructible).
Gracias eso funciona. ¿Sabes por qué MS no proporcionó uno para las constantes enum? –
Porque en el nivel compilado, no hay mucha diferencia entre una constante enum y un campo de miembro ordinario; Tendría que examinar el tipo que lo contiene y determinarlo deriva de Enum. Además, realmente no hay mucha demanda de un atributo que solo se pueda aplicar a las constantes enum. El único que he aplicado a una constante enum es DescriptionAttribute, de System.ComponentModel, que se puede aplicar a cualquier elemento AFAIK. – KeithS
Gracias, también utilicé DescriptionAttribute para constantes enum, este es un atributo similar que estoy usando en el código actual. –