private MemberEmitterDescription EmitMappingMembers(TypePair typePair) { List <MappingMember> members = _mappingMemberBuilder.Build(typePair); MemberEmitterDescription result = _memberMapper.Build(typePair, members); return(result); }
private Option <MapperCache> EmitMapClass(TypePair typePair, TypeBuilder typeBuilder) { MethodBuilder methodBuilder = typeBuilder.DefineMethod(MapClassMethod, OverrideProtected, typePair.Target, new[] { typePair.Source, typePair.Target }); var codeGenerator = new CodeGenerator(methodBuilder.GetILGenerator()); var emitterComposite = new EmitComposite(); MemberEmitterDescription emitterDescription = EmitMappingMembers(typePair); emitterComposite.Add(emitterDescription.Emitter); emitterComposite.Add(EmitReturn.Return(EmitArgument.Load(typePair.Target, 2))); emitterComposite.Emit(codeGenerator); return(emitterDescription.MapperCache); }
private MemberEmitterDescription EmitMappingMembers(List <MappingMember> members) { MemberEmitterDescription result = _memberMapper.Build(members); return(result); }