public TypeMap FindTypeMapFor(TypePair typePair) { TypeMap typeMap; _userDefinedTypeMaps.TryGetValue(typePair, out typeMap); return(typeMap); }
public TypeMap FindClosedGenericTypeMapFor(ResolutionContext context) { var closedGenericTypePair = new TypePair(context.SourceType, context.DestinationType); var sourceGenericDefinition = context.SourceType.GetGenericTypeDefinition(); var destGenericDefinition = context.DestinationType.GetGenericTypeDefinition(); var genericTypePair = new TypePair(sourceGenericDefinition, destGenericDefinition); CreateTypeMapExpression genericTypeMapExpression; if (!_typeMapExpressionCache.TryGetValue(genericTypePair, out genericTypeMapExpression)) { throw new AutoMapperMappingException(context, "Missing type map configuration or unsupported mapping."); } var typeMap = CreateTypeMap(closedGenericTypePair.SourceType, closedGenericTypePair.DestinationType, genericTypeMapExpression.ProfileName, genericTypeMapExpression.MemberList); var mappingExpression = CreateMappingExpression(typeMap, closedGenericTypePair.DestinationType); genericTypeMapExpression.Accept(mappingExpression); return(typeMap); }