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); }
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 _)); }
public IObjectMappingData CreateRootMappingData <TDataSource, TDataTarget>(TDataSource source, TDataTarget target) => ObjectMappingDataFactory.ForRoot(source, target, this);