private bool ValidCore(object value, out string message) { message = null; if (value is null) { return(true); } var enumType = TypeReflections.GetUnderlyingType(_enumType); if (!enumType.IsEnum) { return(false); } if (enumType.GetCustomAttribute <FlagsAttribute>() != null) { return(IsFlagsEnumDefined(enumType, value, out message)); } return(Enum.IsDefined(enumType, value)); }