2

我可以在棱镜模块的每个 Initialize 方法中调用 Mapper.CreateMap 来为不同模块中的对象配置映射吗?我更喜欢这种方法,因此可以单独开发模块和映射

或者我应该在一个可能位于引导程序中的中心位置调用 Mapper.CreateMap?它在引导程序中,MEFbootstrapper 的哪个覆盖方法最好?

4

1 回答 1

0

我知道这个问题很老了,但我想知道同样的事情,我遇到了你的问题。在当前状态下(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)));
于 2014-10-15T20:48:58.503 回答