映射到具有内部构造函数的自定义类型

Rob*_*ett 5 .net c# exception-handling automapper tridion

我们正在尝试映射一个对象 - 一个Tridion Outbound Email Contact - 它有一个带有内部构造函数的自定义字典类型属性 - ExtendedDetailCollection

从对象到Viewmodel的精细映射

Mapper.CreateMap<Contact,ContactViewModel>()
    .ForMember(x=>x.Name, m=>m.MapFrom(x=>x.ExtendedDetails["Name"].StringValue))
Run Code Online (Sandbox Code Playgroud)

但另一种方式不起作用

我们尝试过:

Mapper.CreateMap<ContactViewModel,Contact>()
    .ForMember(x=>x.ExtendedDetails["Name"].Value, m => m.MapFrom(x=>x.Name));
Run Code Online (Sandbox Code Playgroud)

但是会引发运行时异常.

编辑:异常的消息是:

AutoMapper.AutoMapperConfigurationException:仅对类型上的顶级单个成员支持成员的自定义配置.

我们还尝试了各种类型的转换器和值解析器,但是没有一个允许我们获取被映射到的对象,这是我们需要访问以映射ExtendedDetails对象.

Mapper.CreateMap<ContactViewModel,Contact>()
    .ForMember(x=>x.ExtendedDetails, m => ????);
Run Code Online (Sandbox Code Playgroud)

是否有这样的模式或使用静态方法更容易?

Ram*_*Ram 1

如果 ExtendedDetails 是一个类,您需要为该类创建Map,然后创建单个属性,例如类的名称。