在.NET Project中首次设置AutoMapper(6.2.2)

问题描述 投票:2回答:1

想要使用AutoMapper来处理一些'猴子'代码。它适用于蝙蝠;现在希望在一个地方设置所有映射。所以我有:

  1. AppStart文件夹中的静态类AutoMapperConfiguration。
  2. 一个静态Configure方法,我在其中调用Mapper.Initialize()。我从Global.axax.cs调用Configure()在控制器中,我继续使用Mapper.Map(src obj,dest obj)。但是,这给了我一个Unmapped属性异常。 当我在MappingConfiguration变量中使用CreateMap并执行iMapper.Map()时,它正在工作。这是正确的方法吗?如果是这样,如何从一个位置配置和使用它?我可以使用统一容器吗?
c# .net automapper-6
1个回答
3
投票

因为我不想孤儿这个问题;为了任何(不幸的)最终解决这个问题的人的利益;这对我有用:

  1. 在AutoMapperConfiguration类的Configure()内部;而不是使用Mapper.Initialize()语法;我设置了MappingConfiguration类型的属性 config = new MapperConfiguration(cfg => { cfg.CreateMap<viewModel1, entity1>(); cfg.CreateMap<viewModel2, entity2>(); etc.. });

2)下一步是从Global.asax.cs调用Configure()

这允许我在unityConfig.cs中执行以下操作:

unityContainer.RegisterInstance<IMapper>(AutoMapperConfiguration.config.CreateMapper());

剩下的就是将一个IMapper实例注入我的Controller并使用它:

mapper.Map(src obj, dest obj);
© www.soinside.com 2019 - 2024. All rights reserved.