2010-09-09 37 views
1

瞬態生活方式我使用AutoMapper映射域實體在一個Asp.Net MVC應用程序來查看模型。我在Castle Windsor註冊這些映射類,以便它們可以通過ctor依賴注入被控制器使用。這些映射類有一個虛擬CreateMap方法,在那裏我可以覆蓋AutoMapper的地圖,告訴它如何領域從實體向視圖模型,哪些字段忽略映射,指向方法是轉換數據,等等。所有這一切都運作良好;向AutoMapper背後的人們致以崇高的敬意!AutoMapper個教學班,在國際奧委會

到目前爲止,我一直在Windsor註冊一個Singleton生活方式的映射類,但其中一個需要使用Rhino.Security的IAuthorizationRepository,它需要將其組件註冊爲Transient。這迫使我還登記映射類爲瞬態,因爲一個單映射類保持於瞬態IAuthorizationRepository基準會導致問題的第二時間被用於映射器(即,的ISession已經關閉錯誤)。

是否浪費資源將所有這些映射類註冊爲Transient生活方式,這會導致映射類被實例化,並且每次系統想要將域實體映射到視圖時都會運行CreateMap方法模型?

或者我應該嘗試尋找一種方法來IAuthorizationRepository從映射類分開,以便我能保持映射類爲單身?

感謝 丹

回答

1

另一種方式圍繞它使用的是TypedFactoryFacility,然後代替注射IAuthorizationRepository到你單身你可以注入Func<IAuthorizationRepository>