2013-06-21 179 views
1

我還沒有看過AutoMapper源代碼,但正要對我的解決方案中的API控制器進行一些更改,並有一個想法。ASP.NET Mvc - AutoMapper最佳實踐 - 性能

我喜歡編寫代碼的方式是讓我的控制器方法儘可能簡潔,例如我使用通用異常屬性來處理try{}catch{}方案。

所以只有與控制器動作完全相關的代碼實際上在動作方法中。

所以我剛到達的情況下,我需要爲方法創建一個AutoMapper地圖。我最初以爲我會將它添加到控制器構造函數中(如之前所做的那樣),以便立即可用。

但是,隨着控制器的增長,遵循這種模式可能會引入很多不必要的工作,取決於調用的控制器操作方法。

考慮到每個請求創建和銷燬控制器,這可能會變得昂貴。

對此有什麼建議?考慮到AutoMapper被靜態訪問,我想知道它的內部是否超出了請求生命週期,並且它在每次調用CreateMap()時都會在創建新映射之前內部檢查現有映射?

回答

3

您應該爲每個AppDomain創建一次您的地圖(CreateMap),理想情況下是在此域啓動時(Application_Start)。

+0

這也使得更多的意義,因爲我只是看着'AutoMapper'的源代碼,它確實超過了請求的生命期。謝謝Darin – Jammer