/// <summary> /// Adds UCompare into the internal array in CompareManager /// </summary> /// <param name="uCompare"></param> public static void AddCompare(UCompare uCompare) { if (!_compares.ContainsKey(uCompare.id)) { _compares.Add(uCompare.id, uCompare); } else { _compares[uCompare.id] = uCompare; } }
/// <summary> /// Returns the result of the comparison /// </summary> /// <param name="compareModel"></param> /// <returns></returns> public static bool Compare(UCompare compareModel) { var result = false; if (Targets.ContainsKey(compareModel.target)) { var targetObject = Targets[compareModel.target]; if (Members.ContainsKey(compareModel.member)) { var targetMember = Members[compareModel.member]; if (targetMember is FieldInfo) { result = Comparison(((FieldInfo)targetMember).GetValue(targetObject), compareModel.value, compareModel.condition); } else if (targetMember is PropertyInfo) { result = Comparison(((PropertyInfo)targetMember).GetValue(targetObject, null), compareModel.value, compareModel.condition); } else { try { result = Comparison(((MethodInfo)targetMember).Invoke(targetObject, compareModel.parameters), compareModel.value, compareModel.condition); } catch (Exception e) { ULog.Log("CompareManager:Compare:Method. \n" + e.Message, ULogType.Error); //InvokeCompareError(compareModel,CompareEventType.Error,e.Message); //Debug.LogError("CompareManager:Compare method " + compareModel.member + " error: " + e.Message); } } } } return(result); }