在ASP.NET MVC App中初始化AutoMapper v6时出错

时人不识凌云木,直待凌云始道高。这篇文章主要讲述在ASP.NET MVC App中初始化AutoMapper v6时出错相关的知识,希望能为你提供帮助。

var config = new MapperConfiguration(cfg => { cfg.CreateMap< SomeSourceModel, SomeDestinationModel> (); }); config.AssertConfigurationIsValid(); var mapper = config.CreateMapper();

【在ASP.NET MVC App中初始化AutoMapper v6时出错】我在项目中重复这些代码。考虑创建一个公共接口IMapper,以便我可以在需要使用时调用它。
我创建的解决方案是
private IMapper Mapper(TSource source, TDestination dest) { var config = new MapperConfiguration(cfg => { cfg.CreateMap< source, dest> (); }); config.AssertConfigurationIsValid(); returnconfig.CreateMapper(); }

它不起作用。问题是我不能以这种方式将源模型和目标模型作为参数传递。怎么解决这个?
更新1:
正如@ 12秒提到的那样,我开始在MapperConfigration中初始化Global.asax.cs
在App_Start文件夹中,我创建了
public class MappingProfile : Profile { public MappingProfile() { CreateMap< SourceModel1, DestinationModel1> (); CreateMap< SourceModel2, DestinationModel2> (); CreateMap< SourceModel3, DestinationModel3> (); CreateMap< SourceModel4, DestinationModel4> (); CreateMap< SourceModel5, DestinationModel5> (); Mapper.AssertConfigurationIsValid(); }}

Global.asax.cs
public class AutoMapperConfiguration { public static void Configure() { Mapper.Initialize(x => { x.AddProfile< MappingProfile> (); }); } }

然后我试着在几个地方打电话给AutoMapperConfiguration.Configure(); 。当我开始运行App时,我得到了相同的错误消息:
Mapper未初始化。使用适当的配置调用Initialize。如果您尝试通过容器或其他方式使用映射器实例,请确保您没有对静态Mapper.Map方法的任何调用,并且如果您使用的是ProjectTo或UseAsDataSource扩展方法,请确保传入适当的IConfigurationProvider实例。
我想在哪里打电话给AutoMapperConfiguration.Configure(); ?我错过了什么?
答案版本5.0.x +
public class AutoMapperConfiguration { public static void Configure() { Mapper.Initialize(x => { x.AddProfile< MappingProfile> (); }); Mapper.AssertConfigurationIsValid(); } }

另一答案问题解决了。应在Mapper初始化后执行Mapper.AssertConfigurationIsValid();
public class AutoMapperConfiguration { public static void Configure() { Mapper.Initialize(x => { x.AddProfile< MappingProfile> (); }); Mapper.Configuration.AssertConfigurationIsValid(); } }


    推荐阅读