Imports System.ComponentModel Imports System.Reflection Namespace EnumExtend ''' ''' 枚举扩展类 ''' Public Class EnumExtender ''' ''' 获取枚举描述特性 ''' ''' 需要获取特性的枚举值 ''' 枚举描述特性 Public Shared Function GetEnumDescription(enumValue As [Enum]) As String Dim field As FieldInfo = enumValue.GetType().GetField(enumValue.ToString()) Dim attributes() As DescriptionAttribute = DirectCast(field.GetCustomAttributes(GetType(DescriptionAttribute), False), DescriptionAttribute()) If attributes.Length > 0 Then Return attributes(0).Description Else Return field.Name End If End Function ''' ''' 获取当前枚举所有描述特性值,未填的枚举采用枚举名 ''' ''' 枚举类型 ''' Public Shared Function GetEnumAllDesc(enumType As Type) As String() Dim fields As FieldInfo() = enumType.GetFields( BindingFlags.Static Or BindingFlags.Public) Dim fieldsDesc As New List(Of String) For Each field As FieldInfo In fields Dim attributes() As DescriptionAttribute = DirectCast(field.GetCustomAttributes(GetType(DescriptionAttribute), False), DescriptionAttribute()) If attributes.Length > 0 Then fieldsDesc.Add(attributes(0).Description) Else fieldsDesc.Add(field.Name) End If Next Return fieldsDesc.ToArray() End Function End Class End Namespace