Extension to Read Enum Annotation

From Logic Wiki
Jump to: navigation, search


To read Description annotation text in an Enum like that

 public enum Keys
 {
       [Description(@"optevia/controls/servicecustomer/registerbenefits")]
       RegistrationBenifits,

       [Description(@"page/signin/additionalservices")]
       AdditionalServices,
 }

We can use an Extension Method like this

 using System;
 using System.ComponentModel;
 
 namespace MyAccount.Shared.Enums
 {
   public static class ExtensionMethods
   {
       public static string GetDescription(this Enum value)
       {
           var enumType = value.GetType();
           var field = enumType.GetField(value.ToString());
           var attributes = field.GetCustomAttributes(typeof(DescriptionAttribute), false);
           return ((DescriptionAttribute)attributes[0]).Description;
       }
   }
 }