Due to the poor performance Enum.IsDefined producesi’m looking for an
alternative to this utility method:
Note: the enums passed to the method will not change during runtime.
public static object EnumTranslate(Type enumType, object enumValue) {
if (!Enum.IsDefined(enumType, enumValue)) {
if (Attribute.IsDefined(enumType, typeof(FlagsAttribute))) {
// just ignore
} else {
throw new InvalidEnumArgumentException();
}
}
return Enum.ToObject(enumType, enumValue);
}
Ollie Riches - 07 Feb 2007 17:36 GMT
if it does give bad performance as you suggest why don't you cache the
result if the value of enumValue is repeative...
HTH
Ollie Riches
> Due to the poor performance Enum.IsDefined producesi'm looking for an
> alternative to this utility method:
[quoted text clipped - 10 lines]
> return Enum.ToObject(enumType, enumValue);
> }
Rasmus - 07 Feb 2007 17:57 GMT
Good idea, i'll give it a try
/Rasmus
> if it does give bad performance as you suggest why don't you cache the
> result if the value of enumValue is repeative...
[quoted text clipped - 17 lines]
> > return Enum.ToObject(enumType, enumValue);
> > }