by justin
9. July 2010 07:52
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.
537617f3-34a3-4352-b53a-a577c0e04728|0|.0
Tags:
.NET | C#