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); }
public IObjectMappingData ToMappingData <TSource, TTarget>() { if ((_mappingData != null) && _mappingData.MappingTypes.Equals(MappingTypes <TSource, TTarget> .Fixed)) { return(_mappingData); } var ruleSet = IsForAllRuleSets ? MapperContext.RuleSets.CreateNew : RuleSet; var mappingContext = new SimpleMappingContext(ruleSet, MapperContext); _mappingData = ObjectMappingDataFactory .ForRootFixedTypes <TSource, TTarget>(mappingContext, createMapper: false); return(_mappingData); }