2010-05-10 28 views
3

我在我的解决方案中的许多项目中使用AutoMapper。这些项目可以独立部署在多个服务器上。如何配置AutoMapper,如果不是ASP.net应用程序?

在为AutoMapper的文档,它说:

如果你使用静态映射 方法,配置只需要 每个AppDomain发生一次。这意味着 配置代码 配置代码的最佳位置是在应用程序 启动时,例如用于ASP.NET应用程序的Global.asax文件 。

虽然一些的项目将是ASP.net - 其中大部分是类库/ Windows服务。

在这种情况下,我应该在哪里配置映射?

回答

2

据我所知,它应该只需要每个AppDomain一次的想法保持不变。我总是在程序本身的初始化时执行映射。虽然我没有使用AutoMapper,但我使用的是一个IoC库(Windsor),它需要排序的映射,这是从我的program.cs文件完成的。所以当应用程序加载时,它执行映射,并且由于解析器是静态的,并且在共享库中,它可以在全局范围内使用。

我不知道这是否回答您的问题,但基本上每个应用程序都有一个入口点,如果您在入口后立即需要您的映射,那么入口是放置它们的最佳位置。

0

我选择将每个项目的映射存储在不同的类中,以便它们可重用。

protected void Application_Start() 
    { 
     RegisterMaps(); 
    } 

    private void RegisterMaps() 
    { 
     WebAutoMapperSettings.Register(); 
     BusinessLogicAutoMapperSettings.Register(); 
    } 

这样我可以方便地调用BusinessLogicAutoMapperSettings.Register(),如果我要重复使用其他应用程序或Web服务

只有我BusinessLogic DLL
相关问题