Ejemplo n.º 1
0
        private TTarget PerformMapping <TTarget>(TTarget target)
        {
            if (MappingTypes <TSource, TTarget> .SkipTypesCheck)
            {
                // Optimise for the most common scenario:
                var typedRootMappingData = ObjectMappingDataFactory
                                           .ForRootFixedTypes(_source, target, this);

                return(typedRootMappingData.MapStart());
            }

            var rootMappingData = ObjectMappingDataFactory.ForRoot(_source, target, this);
            var result          = rootMappingData.MapStart();

            return((TTarget)result);
        }
Ejemplo n.º 2
0
        private IQualifiedMember GetMatchingSourceMember <TSource, TTarget>(
            TSource source,
            TTarget target,
            Expression <Func <TTarget, object> > childMemberExpression)
        {
            var targetMember = TargetMemberFor(childMemberExpression);

            var mappingContext  = new SimpleMappingContext(DefaultMapperContext.RuleSets.CreateNew, DefaultMapperContext);
            var rootMappingData = ObjectMappingDataFactory.ForRoot(source, target, mappingContext);
            var rootMapperData  = rootMappingData.MapperData;

            var childMapperData     = new ChildMemberMapperData(targetMember, rootMapperData);
            var childMappingContext = rootMappingData.GetChildMappingData(childMapperData);

            return(SourceMemberMatcher.GetMatchFor(childMappingContext, out _));
        }
Ejemplo n.º 3
0
 public IObjectMappingData CreateRootMappingData <TDataSource, TDataTarget>(TDataSource source, TDataTarget target)
 => ObjectMappingDataFactory.ForRoot(source, target, this);