private TDestination MapCore <TSource, TDestination>( TSource source, TDestination destination, ResolutionContext context, Type sourceType = null, Type destinationType = null, MemberMap memberMap = null) { var runtimeTypes = new TypePair(source?.GetType() ?? sourceType ?? typeof(TSource), destination?.GetType() ?? destinationType ?? typeof(TDestination)); var requestedTypes = new TypePair(typeof(TSource), typeof(TDestination)); var mapRequest = new MapRequest(requestedTypes, runtimeTypes, memberMap); return(_configurationProvider.GetExecutionPlan <TSource, TDestination>(mapRequest)(source, destination, context)); }