It turns out that there isn’t a non-generic TryParse overload in .net 4. This seems like a pretty egregious oversight so I created my own.
public static class EnumHelper { static MethodInfo enumTryParse; static EnumHelper() { enumTryParse = typeof(Enum).GetMethods(BindingFlags.Public | BindingFlags.Static) .Where(m => m.Name == "TryParse" && m.GetParameters().Length == 3) .First(); } public static bool TryParse( Type enumType, string value, bool ignoreCase, out object enumValue) { MethodInfo genericEnumTryParse = enumTryParse.MakeGenericMethod(enumType); object[] args = new object[] { value, ignoreCase, Enum.ToObject(enumType, 0) }; bool success = (bool)genericEnumTryParse.Invoke(null, args); enumValue = args[2]; return success; } }
enjoy.
You must log in to post a comment.