WebAPI返回状态码——Enum扩展类

-

/// <summary>
/// 枚举拓展类
/// </summary>
public static class EnumExtensions
{
    /// <summary>
    /// 获取枚举的描述信息
    /// </summary>
    /// <param name="value"></param>
    /// <returns></returns>
    public static string GetDescription(this object value)
    {
        if (value == null)
            return string.Empty;

        var type = value.GetType();
        var fieldInfo = type.GetField(Enum.GetName(type, value));

        if (fieldInfo == null) return string.Empty;
        if (!Attribute.IsDefined(fieldInfo, typeof(DescriptionAttribute))) return string.Empty;

        if (Attribute.GetCustomAttribute(fieldInfo, typeof(DescriptionAttribute))
            is DescriptionAttribute description)
            return description.Description;
        return string.Empty;
    }

    /// <summary>
    /// 获取枚举对应的值
    /// </summary>
    /// <typeparam name="T">枚举类型</typeparam>
    /// <param name="enumName">枚举对应值的名</param>
    /// <returns>枚举对象对应的值</returns>
    public static int GetEnumValue<T>(this object enumName)
    {
        return (int)enumName.GetEnumObj<T>();
    }

    /// <summary>
    /// 获取枚举对象
    /// </summary>
    /// <typeparam name="T">枚举类型</typeparam>
    /// <param name="enumName">枚举对应值的名</param>
    /// <returns>枚举对象</returns>
    private static object GetEnumObj<T>(this object enumName)
    {
        var enumNameValue = enumName.ToString();
        return (T)Enum.Parse(typeof(T), enumNameValue);
    }
}


本文转载 " 整理 "

原文地址 " "

相关文章!