我们正在尝试映射一个对象 - 一个Tridion Outbound Email Contact - 它具有带内部构造函数的自定义字典类型属性 - ExtendedDetailCollection
从对象到Viewmodel的精细映射
Mapper.CreateMap<Contact,ContactViewModel>()
.ForMember(x=>x.Name, m=>m.MapFrom(x=>x.ExtendedDetails["Name"].StringValue))
但另一种方式不起作用
我们尝试过:
Mapper.CreateMap<ContactViewModel,Contact>()
.ForMember(x=>x.ExtendedDetails["Name"].Value, m => m.MapFrom(x=>x.Name));
但是会引发运行时异常。
编辑:例外的消息是:
AutoMapper.AutoMapperConfigurationException:自定义配置 成员仅支持某种类型的顶级个人成员。
我们还尝试了各种类型转换器和值解析器,但是没有一个允许我们获取要映射到的对象,这是我们需要访问以映射ExtendedDetails对象。
Mapper.CreateMap<ContactViewModel,Contact>()
.ForMember(x=>x.ExtendedDetails, m => ????);
是否有这样的模式或者使用静态方法更容易?
答案 0 :(得分:1)
如果ExtendedDetails是一个类,则需要为此类创建Map,然后为类的名称创建单个属性。