public static TAttribute GetEnumAttribute <[EnumConstraint] TEnum, TAttribute>(this TEnum value) where TAttribute : Attribute { return(value.GetType() .GetMember(value.ToString()) .First() .GetCustomAttribute <TAttribute>()); }
public static string SetNullableValue <TEnum>(TEnum?enumValue) where TEnum : struct { if (enumValue.HasValue) { int val = (int)Enum.Parse(typeof(TEnum), enumValue.Value.ToString()); if (val < 0) { return(null); } } return(enumValue?.ToString() ?? null); }
public static string ToString <[EnumConstraint] TEnum>(TEnum enumValue, DisplayType displayType) { switch (displayType) { case DisplayType.Value: return(enumValue.ToString()); case DisplayType.DisplayName: return(enumValue.GetEnumAttribute <TEnum, DisplayAttribute>().Name); case DisplayType.Description: return(enumValue.GetEnumAttribute <TEnum, DescriptionAttribute>().Description); case DisplayType.ResourceDisplayName: DisplayAttribute displayAttribute = enumValue.GetEnumAttribute <TEnum, DisplayAttribute>(); ResourceManager resManager = new ResourceManager(displayAttribute.ResourceType); return(resManager.GetString(displayAttribute.Name)); default: return(string.Empty); } }