public static class Enum <T> { public static T Parse ( string name ) { return ( T ) Enum.Parse ( typeof ( T ), name ); } public static IEnumerable < T > GetValues ( ) { foreach ( T value in Enum.GetValues ( typeof ( T ) ) ) { yield return value; } } public static IEnumerable<AttributeType> GetAttributes <AttributeType> ( T value ) where AttributeType : Attribute { FieldInfo fieldInfo = typeof ( T ).GetField ( value.ToString ( ) ); if (fieldInfo != null) { foreach ( object customAttribute in fieldInfo.GetCustomAttributes ( typeof ( AttributeType ), false ) ) { yield return customAttribute as AttributeType; } } } public static IList<AttributeType> GetAttributeList <AttributeType> ( T value ) where AttributeType : Attribute { return new List<AttributeType> ( GetAttributes<AttributeType> ( value ) ); } public static string GetDescription( T value ) { IList< DescriptionAttribute > attributeList = GetAttributeList<DescriptionAttribute> ( value ); if (attributeList.Count < 1) return value.ToString(); return attributeList[ 0 ].Description; } }
Monday, 17 September 2007
Enum
inspired by Enum , here's my version... it still needs to work with resources, but works otherwise.
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment