lunes, 22 de junio de 2009

.NET – Agregarle descripcion a un Enum

enum_desc 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:

electronic components dijo...
Este blog ha sido eliminado por un administrador de blog.