我可以在棱镜模块的每个 Initialize 方法中调用 Mapper.CreateMap 来为不同模块中的对象配置映射吗?我更喜欢这种方法,因此可以单独开发模块和映射
或者我应该在一个可能位于引导程序中的中心位置调用 Mapper.CreateMap?它在引导程序中,MEFbootstrapper 的哪个覆盖方法最好?
我可以在棱镜模块的每个 Initialize 方法中调用 Mapper.CreateMap 来为不同模块中的对象配置映射吗?我更喜欢这种方法,因此可以单独开发模块和映射
或者我应该在一个可能位于引导程序中的中心位置调用 Mapper.CreateMap?它在引导程序中,MEFbootstrapper 的哪个覆盖方法最好?
我知道这个问题很老了,但我想知道同样的事情,我遇到了你的问题。在当前状态下(Prism 5 和 AutoMapper 3.2.1),您可以在模块定义中为每个 prism 模块创建映射。
public void Initialize()
{
this.RegisterViewsAndServices();
this.ResolveAutomapping();
}
private void ResolveAutomapping()
{
AutoMapper.Mapper.CreateMap<Entities.Channel, Modules.EntityWrappers.ChannelWrapper>().ForMember("Selected", o => o.UseValue(false));
}
然后在我的视图模型中,我毫无问题地调用它
Channels = new ObservableCollection<ChannelWrapper>(data.Select(r => AutoMapper.Mapper.Map<ChannelWrapper>(r)));