نمایش عنوان Enum در Asp.Net Core

 

در بیشتر مواقع نیاز است که به جای نمایش عدد Enum  شما عنوان (DisplayName) یک Enum را در خروجی نمایش دهید . 
ابتدا یک Enum به عنوان مثال در خصوص جنیست تعریف میکنیم : 
public enum Gender
{
    [Display(Name = "مرد")]
    Male = 1,
    [Display(Name = "زن")]
    Female = 2
}

سپس یک Static class به نام دلخواه که من در اینجا DisplayEnumration قرار داده ام میسازید و قطعه کد زیر را استفاده کنید:

public static class DisplayEnumration
{
    public static string DisplayName(this Enum item)
    {
        var type = item.GetType();
        var member = type.GetMember(item.ToString());
        DisplayAttribute displayName = (DisplayAttribute)member[0]
            .GetCustomAttributes(typeof(DisplayAttribute), false)
            .FirstOrDefault();

        if (displayName != null)
        {
            return displayName.Name;
        }

        return item.ToString();
    }
}

 و برای استفاده از این Static class به صورت زیر عمل کنید : 

DisplayEnumration.DisplayName(Gender.Male)