Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
        }