private bool ComparePrivateFieldsForType(Type type)
        {
            if (TypeSpecificCompareOptions.ContainsKey(type))
            {
                return(TypeSpecificCompareOptions[type].ComparePrivateFields);
            }

            return(ComparePrivateFields);
        }
        private bool IgnoreTypeForType(Type type, Type typeToIgnore)
        {
            if (TypeSpecificCompareOptions.ContainsKey(type))
            {
                return(TypeSpecificCompareOptions[type].TypesToIgnore.Contains(typeToIgnore));
            }

            return(TypesToIgnore.Contains(typeToIgnore));
        }
        private bool CompareReadOnlyForType(Type type)
        {
            if (TypeSpecificCompareOptions.ContainsKey(type))
            {
                return(TypeSpecificCompareOptions[type].CompareReadOnly);
            }

            return(CompareReadOnly);
        }
        private bool SkipElementForType(Type type, string elementName)
        {
            if (TypeSpecificCompareOptions.ContainsKey(type))
            {
                return(TypeSpecificCompareOptions[type].ElementsToIgnore.Contains(elementName));
            }

            return(ElementsToIgnore.Contains(elementName));
        }
        private bool CompareChildrenForType(Type type)
        {
            if (TypeSpecificCompareOptions.ContainsKey(type))
            {
                return(TypeSpecificCompareOptions[type].CompareChildren);
            }

            return(CompareChildren);
        }