/// <summary>Set Property</summary> /// <param name="propInfo"></param> /// <param name="o"></param> /// <param name="index"></param> /// <param name="value"></param> public static void SetPropertyValue(PropertyInfo propInfo, Object o, object[] index, Object value) { try { Object castedValue = DynCast(value, propInfo.PropertyType); if (InvokeRequired(o, propInfo.ReflectedType)) { GuiInteractive guiUtils = new GuiInteractive(); guiUtils.ReflectionSet(propInfo, o, index, castedValue); } else { propInfo.SetValue(o, castedValue, index); } } catch (Exception e) { if (e is TargetInvocationException && e.InnerException != null) { throw e.InnerException; } else { throw e; } } }
/// <summary>Set field</summary> /// <param name="fieldInfo"></param> /// <param name="o"></param> /// <param name="value"></param> public static void SetFieldValue(FieldInfo fieldInfo, Object o, Object value) { Object castedValue = DynCast(value, fieldInfo.FieldType); if (InvokeRequired(o, fieldInfo.ReflectedType)) { GuiInteractive guiUtils = new GuiInteractive(); guiUtils.ReflectionSet(fieldInfo, o, null, castedValue); } else { fieldInfo.SetValue(o, castedValue); } }
/// <summary> /// /// </summary> /// <param name="propInfo"></param> /// <param name="guiMgControl"></param> /// <param name="index"></param> /// <param name="value"></param> public static void SetPropertyValue(PropertyInfo propInfo, GuiMgControl guiMgControl, object[] index, Object value) { GuiInteractive guiUtils = new GuiInteractive(); guiUtils.ReflectionSet(propInfo, guiMgControl, index, value); }