2010-05-10 56 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
相關問題