internal bool BuildUp <TSource, TDest>(IMappingImplementation impl) { if (MapEssence <TSource, TDest> .MapFunc != null) { return(false); } var mapFactory = new MapFactory(new MemberMappingsResolver(), dynamicMemberResolver, new MapEmitter(typeof(TDest))); MapEssence <TSource, TDest> .MapFunc = mapFactory.BuildMapMethod <TSource, TDest>(impl); return(true); }
public Func <TSource, TDest> MapFunc <TSource, TDest>() { var mapFunc = MapEssence <TSource, TDest> .MapFunc; if (mapFunc != null) { return(mapFunc); } var key = new TypeMap(typeof(TSource), typeof(TDest)); if (!mappings.TryGetValue(key, out var impl)) { impl = new MappingRegistration <TSource, TDest>(); } var mapFactory = new MapFactory(new MemberMappingsResolver(), dynamicMemberResolver, new MapEmitter(typeof(TDest))); mapFunc = MapEssence <TSource, TDest> .MapFunc = mapFactory.BuildMapMethod <TSource, TDest>(impl); ExpandResolvedMappings(); return(mapFunc); }