/// <summary>Parses a string and converts to an enumeration.</summary> /// <param name="enumType">Type of enumeration to return.</param> /// <param name="fieldValue">EnumMemberAttribute.Value string or enum.ToString().</param> /// <returns>Enumeration of the correct value.</returns> public static Enum ToEnum(Type enumType, string fieldValue) { Enum enumValue = EnumExtensions.GetEnumFromAttribute(enumType, fieldValue); return(enumValue == null ? (Enum)Enum.Parse(enumType, fieldValue) : enumValue); }
/// <summary>Parses a string and converts to an enumeration.</summary> /// <typeparam name="T">Type of enumeration to return.</typeparam> /// <param name="fieldValue">EnumMemberAttribute.Value string or enum.ToString().</param> /// <param name="defaultValue">Default value to use if the EnumMemberAttribute is not obtained.</param> /// <returns>Enumeration of the correct value.</returns> public static T ToEnum <T>(string fieldValue, T defaultValue) where T : struct, IConvertible { Enum enumValue = EnumExtensions.GetEnumFromAttribute(typeof(T), fieldValue); if (enumValue != null) { return((T)(object)enumValue); } T parsedValue = defaultValue; return(Enum.TryParse(fieldValue, out parsedValue) ? parsedValue : defaultValue); }