コード例 #1
0
        public static Type GetTargetType(Type sourceType, IRuntimeMapper runtimeMapper)
        {
            if (!lookup.TryGetValue(sourceType.FullName, out var targetType))
            {
                var mapper = runtimeMapper.GetType()
                             .GetField("_inner", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance)
                             .GetValue(runtimeMapper) as Mapper;

                targetType = mapper.ConfigurationProvider.GetAllTypeMaps().Single(m => m.SourceType == sourceType).DestinationType;

                lookup[sourceType.FullName] = targetType;
            }

            return(targetType);
        }