internal static IEquivalentComparer GetEquivalentExpression(this IConfigurationObjectMapper mapper, Type sourceType, Type destinationType)
        {
            var typeMap = mapper.ConfigurationProvider.ResolveTypeMap(sourceType, destinationType);

            if (typeMap == null)
            {
                return(null);
            }

            var comparer = GetEquivalentExpression(mapper.ConfigurationProvider, typeMap);

            if (comparer == null)
            {
                foreach (var item in typeMap.IncludedBaseTypes)
                {
                    var baseTypeMap = mapper.ConfigurationProvider.ResolveTypeMap(item.SourceType, item.DestinationType);
                    if (baseTypeMap == null)
                    {
                        continue;
                    }

                    comparer = GetEquivalentExpression(mapper.ConfigurationProvider, baseTypeMap);
                    if (comparer != null)
                    {
                        break;
                    }
                }
            }
            return(comparer);
        }
Esempio n. 2
0
        internal static IEquivalentComparer GetEquivalentExpression(this IConfigurationObjectMapper mapper, Type sourceType, Type destinationType)
        {
            var typeMap = mapper.ConfigurationProvider.ResolveTypeMap(sourceType, destinationType);

            return(typeMap == null ? null : GetEquivalentExpression(mapper.ConfigurationProvider, typeMap));
        }