示例#1
0
 /// <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;
     }
 }
示例#2
0
        /// <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);
        }