我正在迁移到AutoMapper的新配置。我正在查看AutoMapper GitHub Wiki上的示例,但对如何完成配置有些困惑。Wiki在一个地方说可以将MapperConfiguration实例存储在您的D.I.容器(或静态存储),但下一段则说可以静态存储Mapper实例。简而言之,我不确定应该做什么。
然后使用一个 D.I. 容器,例如 Unity,将该实例存储为这样...
我可以随后使用这个实例来执行映射操作...
或者,我应该存储MapperConfiguration创建的IMapper实例吗?
这句话的意思是:“它将被用于以下场合。”
在初始配置之后,我在我的应用程序中要做的所有事情都是调用Map方法。我将不需要修改配置。我应该在我的依赖注入容器中存储IMapper实例还是MapperConfiguration实例?
更新:最终我使用我的D.I.容器(Unity)注册了IMapper。
var config = new MapperConfiguration(cfg => {
cfg.CreateMap<Foo, Bar>().ReverseMap(); //creates a bi-directional mapping between Foo & Bar
cfg.AddProfile<FooProfile>(); //suppose FooProfile creates mappings...
});
然后使用一个 D.I. 容器,例如 Unity,将该实例存储为这样...
container.RegisterInstance<MapperConfiguration>(config);
我可以随后使用这个实例来执行映射操作...
public void CreateMapping(MapperConfiguration config, Bar bar)
{
Foo foo = config.CreateMapper().Map(bar);
//do stuff with foo
}
或者,我应该存储MapperConfiguration创建的IMapper实例吗?
container.RegisterInstance<IMapper>(config.CreateMapper());
这句话的意思是:“它将被用于以下场合。”
public void CreateMapping(IMapper mapper, Bar bar)
{
Foo foo = mapper.Map(bar);
//do stuff with foo
}
在初始配置之后,我在我的应用程序中要做的所有事情都是调用Map方法。我将不需要修改配置。我应该在我的依赖注入容器中存储IMapper实例还是MapperConfiguration实例?
更新:最终我使用我的D.I.容器(Unity)注册了IMapper。