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); }
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)); }