5

我们正在尝试映射一个对象 - 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 => ????);

是否有这种模式或者仅使用静态方法更容易?

4

1 回答 1

1

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

于 2012-03-14T12:20:37.430 回答