public object MakeUnderlying(object[] propertyValues) { var outObject = _beanInstantiator.Instantiate(); if (!_hasPrimitiveTypes) { for (var i = 0; i < _writeFieldsReflection.Length; i++) { try { _writeFieldsReflection[i].SetValue(outObject, propertyValues[i]); } catch (MemberAccessException e) { Handle(e, _writeFieldsReflection[i].Name); } } } else { for (var i = 0; i < _writeFieldsReflection.Length; i++) { if (_primitiveType[i]) { if (propertyValues[i] == null) { continue; } } try { _writeFieldsReflection[i].SetValue(outObject, propertyValues[i]); } catch (MemberAccessException e) { Handle(e, _writeFieldsReflection[i].Name); } } } return(outObject); }
public Object MakeUnderlying(Object[] propertyValues) { Object outObject = _beanInstantiator.Instantiate(); if (_writeMethodsFastClass != null) { if (!_hasPrimitiveTypes) { var parameters = new Object[1]; for (int i = 0; i < _writeMethodsFastClass.Length; i++) { parameters[0] = propertyValues[i]; try { _writeMethodsFastClass[i].Invoke(outObject, parameters); } catch (Exception e) { HandleAny(e, _writeMethodsFastClass[i].Name); } } } else { Object[] parameters = new Object[1]; for (int i = 0; i < _writeMethodsFastClass.Length; i++) { if (_primitiveType[i]) { if (propertyValues[i] == null) { continue; } } parameters[0] = propertyValues[i]; try { _writeMethodsFastClass[i].Invoke(outObject, parameters); } catch (Exception e) { HandleAny(e, _writeMethodsFastClass[i].Name); } } } } else { if (!_hasPrimitiveTypes) { Object[] parameters = new Object[1]; for (int i = 0; i < _writeMethodsReflection.Length; i++) { parameters[0] = propertyValues[i]; try { _writeMethodsReflection[i].Invoke(outObject, parameters); } catch (MemberAccessException e) { Handle(e, _writeMethodsReflection[i].Name); } catch (Exception e) { String message = "Unexpected exception encountered invoking setter-method '" + _writeMethodsReflection[i] + "' on class '" + _beanEventType.UnderlyingType.Name + "' : " + e.InnerException.Message; Log.Error(message, e); } } } else { Object[] parameters = new Object[1]; for (int i = 0; i < _writeMethodsReflection.Length; i++) { if (_primitiveType[i]) { if (propertyValues[i] == null) { continue; } } parameters[0] = propertyValues[i]; try { _writeMethodsReflection[i].Invoke(outObject, parameters); } catch (MemberAccessException e) { Handle(e, _writeMethodsReflection[i].Name); } catch (Exception e) { HandleAny(e, _writeMethodsReflection[i].Name); } } } } return(outObject); }
public object MakeUnderlying(object[] propertyValues) { var outObject = beanInstantiator.Instantiate(); if (!hasPrimitiveTypes) { var parameters = new object[1]; for (var i = 0; i < writeMembersReflection.Length; i++) { parameters[0] = propertyValues[i]; try { var writeMember = writeMembersReflection[i]; if (writeMember is MethodInfo writeMethod) { writeMethod.Invoke(outObject, parameters); } else if (writeMember is PropertyInfo writeProperty) { writeProperty.SetValue(outObject, parameters[0]); } else { throw new IllegalStateException("writeMember of invalid type"); } } catch (MemberAccessException e) { Handle(e, writeMembersReflection[i].Name); } catch (Exception e) { var message = "Unexpected exception encountered invoking setter-method '" + writeMembersReflection[i] + "' on class '" + beanEventType.UnderlyingType.Name + "' : " + e.Message; Log.Error(message, e); } } } else { var parameters = new object[1]; for (var i = 0; i < writeMembersReflection.Length; i++) { if (primitiveType[i] && propertyValues[i] == null) { continue; } parameters[0] = propertyValues[i]; try { var writeMember = writeMembersReflection[i]; if (writeMember is MethodInfo writeMethod) { writeMethod.Invoke(outObject, parameters); } else if (writeMember is PropertyInfo writeProperty) { writeProperty.SetValue(outObject, parameters[0]); } else { throw new IllegalStateException("invalid member info"); } } catch (MemberAccessException e) { Handle(e, writeMembersReflection[i].Name); } catch (Exception e) { HandleAny(e, writeMembersReflection[i].Name); } } } return outObject; }