コード例 #1
0
        public TypeMap FindTypeMapFor(TypePair typePair)
        {
            TypeMap typeMap;

            _userDefinedTypeMaps.TryGetValue(typePair, out typeMap);
            return(typeMap);
        }
コード例 #2
0
        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);
        }