PerformCompareProperties() public method

Compare the properties of a class
public PerformCompareProperties ( CompareParms parms ) : void
parms CompareParms
return void
Ejemplo n.º 1
0
 private void CompareProperties(CompareParms parms)
 {
     if (parms.Config.CompareProperties)
     {
         _propertyComparer.PerformCompareProperties(parms, true);
     }
 }
Ejemplo n.º 2
0
        /// <summary>
        /// Compare two structs
        /// </summary>
        public override void CompareType(CompareParms parms)
        {
            if (parms.Result.CurrentStructDepth >= parms.Config.MaxStructDepth)
            {
                return;
            }

            try
            {
                parms.Result.CurrentStructDepth++;
                parms.Object1Type = parms.Object1.GetType();
                parms.Object2Type = parms.Object2.GetType();

                if (parms.Config.CompareFields)
                {
                    _fieldComparer.PerformCompareFields(parms);
                }

                if (parms.Config.CompareProperties)
                {
                    _propertyComparer.PerformCompareProperties(parms);
                }
            }
            finally
            {
                parms.Result.CurrentStructDepth--;
            }
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Compare two classes
        /// </summary>
        public override void CompareType(CompareParms parms)
        {
            try
            {
                parms.Result.AddParent(parms.Object1);
                parms.Result.AddParent(parms.Object2);

                //Custom classes that implement IEnumerable may have the same hash code
                //Ignore objects with the same hash code
                if (!(parms.Object1 is IEnumerable) &&
                    ReferenceEquals(parms.Object1, parms.Object2))
                {
                    return;
                }

                Type t1 = parms.Object1.GetType();
                Type t2 = parms.Object2.GetType();

                //Check if the class type should be excluded based on the configuration
                if (ExcludeLogic.ShouldExcludeClass(parms.Config, t1, t2))
                {
                    return;
                }

                parms.Object1Type = t1;
                parms.Object2Type = t2;

                //Compare the properties
                if (parms.Config.CompareProperties)
                {
                    _propertyComparer.PerformCompareProperties(parms);
                }

                //Compare the fields
                if (parms.Config.CompareFields)
                {
                    _fieldComparer.PerformCompareFields(parms);
                }
            }
            finally
            {
                parms.Result.RemoveParent(parms.Object1);
                parms.Result.RemoveParent(parms.Object2);
            }
        }