コード例 #1
0
        private ObjectsMapperBaseImpl BuildObjectsMapper(
            string MapperTypeName,
            Type from,
            Type to,
            IMappingConfigurator mappingConfigurator)
        {
            TypeBuilder typeBuilder = DynamicAssemblyManager.DefineMapperType(MapperTypeName);

            CreateTargetInstanceBuilder.BuildCreateTargetInstanceMethod(to, typeBuilder);

            var mappingBuilder = new MappingBuilder(
                this,
                from,
                to,
                typeBuilder,
                mappingConfigurator
                );

            mappingBuilder.BuildCopyImplMethod();

            ObjectsMapperBaseImpl result =
                (ObjectsMapperBaseImpl)Activator.CreateInstance(typeBuilder.CreateType());

            result.Initialize(this, from, to, mappingConfigurator, mappingBuilder.storedObjects.ToArray());
            return(result);
        }