Could use reflection. Should test to make sure it doesn't perform unacceptably for you though.
private static bool IsDefined(uint i) {
var constants = typeof(ObjectTypes).GetFields().Where(f => f.IsLiteral).ToArray();
foreach(var constant in constants) {
if(i == (uint)constant.GetRawConstantValue()) {
return true;
}
}
return false;
}