当我尝试使用automapper映射在运行时生成的类时。
AssemblyName asmName = new AssemblyName(string.Format("{0}_{1}", "tmpAsm", Guid.NewGuid().ToString("N")));
AssemblyBuilder asmBuilder = AppDomain.CurrentDomain.DefineDynamicAssembly(asmName, AssemblyBuilderAccess.Run);
ModuleBuilder moduleBuilder = asmBuilder.DefineDynamicModule("core");
TypeBuilder typeBuilder = GetTempModule().DefineType("MyDynamicClass", TypeAttributes.Public);
Type proxy = typeBuilder.CreateType();
var mc = new MapperConfiguration(cfg =>
{
cfg.CreateMap(proxy, typeof(MyViewModel));
});
var mapper = mc.CreateMapper();
mapper.Map<MyViewModel>(Activator.CreateInstance(proxy));
我收到以下错误:
AutoMapper.AutoMapperMappingException:缺少类型映射配置 或不支持的映射。
尽管出现了错误消息,但您可以看到映射已被删除。有什么建议吗?
答案 0 :(得分:0)
尝试使用:
TypeBuilder typeBuilder = moduleBuilder.DefineType("MyDynamicClass", TypeAttributes.Public);
而不是:
TypeBuilder typeBuilder = GetTempModule().DefineType("MyDynamicClass", TypeAttributes.Public);
另外,请检查您正在使用的AutoMapper版本:我在6.1.1.0上测试