public object GetValue(object target) { if (OptimizedReflection.safeMode) { OptimizedReflection.VerifyStaticTarget(targetType, target); if (getter == null) { throw new TargetException($"The property '{targetType}.{propertyInfo.Name}' has no get accessor."); } try { return(GetValueUnsafe(target)); } catch (TargetInvocationException) { throw; } catch (Exception ex) { throw new TargetInvocationException(ex); } } else { return(GetValueUnsafe(target)); } }
public void SetValue(object target, object value) { if (OptimizedReflection.safeMode) { OptimizedReflection.VerifyStaticTarget(targetType, target); if (setter == null) { throw new TargetException($"The property '{targetType}.{propertyInfo.Name}' has no set accessor."); } if (!typeof(TProperty).IsInstanceOfTypeNullable(value)) { throw new ArgumentException($"The provided value for '{targetType}.{propertyInfo.Name}' does not match the property type.\nProvided: {value?.GetType()?.ToString() ?? "null"}\nExpected: {typeof(TProperty)}"); } try { SetValueUnsafe(target, value); } catch (TargetInvocationException) { throw; } catch (Exception ex) { throw new TargetInvocationException(ex); } } else { SetValueUnsafe(target, value); } }
public object GetValue(object target) { if (OptimizedReflection.safeMode) { OptimizedReflection.VerifyStaticTarget(targetType, target); try { return(GetValueUnsafe(target)); } catch (TargetInvocationException) { throw; } catch (Exception ex) { throw new TargetInvocationException(ex); } } else { return(GetValueUnsafe(target)); } }
protected override void VerifyTarget(object target) { OptimizedReflection.VerifyStaticTarget(targetType, target); }