Ya hemos revisado en el post anterior, cómo podemos iterar por los elementos de una enumeración.
Ahora, vamos a ver cómo se hace para añadirle una descripción a una enumeración... y luego, cómo recuperamos esa enumeración.
Para nuestro propósito, vamos a usar Reflection.
1.- Importamos
Imports System.ComponentModel
Imports System.Reflection
2.- Para añadirle una description a nuestro enum, hacemos esto:
Enum Roles
<Description("Administrador general del sistema")> Administrador = 1
<Description("Usuario de la aplicación, con derechos limitados")> Usuario = 2
<Description("Auditor del sistema")> Auditor = 3
<Description("Persona que no es usuario de la aplicación")> Invitado = 4
End Enum
3.- De esta forma recuperamos las descripciones de la enumeración:
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Dim sb As New StringBuilder
Dim enumValores As FieldInfo() = GetType(Roles).GetFields()
For Each info As Reflection.FieldInfo In enumValores
If Not info.IsSpecialName Then
Dim obj As Object = info.GetCustomAttributes(GetType(DescriptionAttribute), False)
Dim desc As DescriptionAttribute = DirectCast(obj(0), DescriptionAttribute)
sb.Append(desc.Description & "<br />")
End If
Next info
Response.Write(sb.ToString)
End Sub
Y es sería todo. ;)
1 comentario:
Publicar un comentario