获取枚举的属性值

获取枚举的属性值

【Description】

//枚举类
public enum MaterialReceiptStatus
{
    /// <summary>
    ///     草稿
    /// </summary>
    [Description("草稿")]
    Draft = 1,
    /// <summary>
    ///     审核中
    /// </summary>
    [Description("审核中")]
    Reviewing = 2,
    /// <summary>
    ///     通过
    /// </summary>
    [Description("通过")]
    Pass = 3,
    /// <summary>
    ///     退回
    /// </summary>
    [Description("退回")]
    Back = 4
}

//枚举的扩展类
public static class EnumExtensions
{
    public static string Description(this Enum enumValue) => enumValue.GetAttribute<DescriptionAttribute>()?.Description ?? "";

    public static TAttribute GetAttribute<TAttribute>(this Enum enumValue) where TAttribute : Attribute
    {
        return enumValue.GetType()
            .GetMember(enumValue.ToString())
            .FirstOrDefault()
            ?.GetCustomAttribute<TAttribute>();
    }
}
//使用
var desc = ((MaterialReceiptStatus)item.Status).Description();
posted on 2023-09-06 14:03  Jeffrey~~  阅读(43)  评论(0)    收藏  举报