有没有办法在我的应用程序中映射2个模型(Mapper.CreateMap()),例如在global.asax中,然后在需要的地方只调用代码中的Mapper.Map()?
答案 0 :(得分:1)
是的,你可以,事实上这是配置AutoMapper的推荐方法。创建初始映射是AutoMapper的(相对)昂贵的部分,因此您只想做一次。
如你所知,Global.asax
是一个很好的去处。尽管将它放在一个单独的类中是个好主意,例如Bootstrapper
,Application_Start
方法调用,这样也可以从单元测试中调用此类和方法。
我在哪里配置AutoMapper? 如果您使用静态Mapper方法,则每个AppDomain只需要进行一次配置。这意味着放置配置代码的最佳位置是应用程序启动,例如ASP.NET应用程序的Global.asax文件。通常,配置引导程序类在其自己的类中,并且从启动方法调用此引导程序类。
另见this question,其中包含一些好主意,包括撰写AutoMapper的Jimmy Bogard的建议。