public void Load(object obj) { if (FieldSchema.IsLoadable) { object valueObject = TypeRepo.LoadObjectRef(); // todo: 36% of current cpu usage, break into explicit operators? (is that even possible?) FieldSchema.FieldInfo.SetValue(obj, valueObject); // else set to null? } else { TypeRepo.SkipObjectRef(); } }