public static SimpleMemberMapperData Create(Expression sourceValue, IMemberMapperData mapperData)
        {
            if (!mapperData.TargetMember.IsEnumerable)
            {
                return(new SimpleMemberMapperData(sourceValue.ToSourceMember(mapperData.MapperContext), mapperData));
            }

            var enumerableMapperData = (ObjectMapperData)mapperData;
            var membersSource        = new ElementMembersSource(enumerableMapperData);

            return(new SimpleMemberMapperData(
                       membersSource.GetSourceMember().WithType(sourceValue.Type),
                       membersSource.GetTargetMember(),
                       enumerableMapperData));
        }
        public static IObjectMappingData ForElement <TSource, TTarget>(
            TSource source,
            TTarget target,
            int enumerableIndex,
            IObjectMappingData parent)
        {
            var membersSource = new ElementMembersSource(parent);

            return(ForElement(
                       source,
                       target,
                       enumerableIndex,
                       membersSource,
                       parent));
        }