2011-06-03 101 views

回答

4

它應該居住在它翻譯的最頂層。

如果你有域和infra之間的映射器,那麼他們應該生活在域(假設使用infra)。

如果你有UI和域之間的映射器,那麼他們應該生活在UI(假設使用域)。

這意味着較低層向下層不知道或需要知道較高層。

+0

我有UI(ViewModels)和域之間的映射。如果我放入基礎設施,如果我明天更換用戶界面,效果會更好嗎? – 2011-06-03 19:28:41

+0

@Acaz - 我不明白你的意思。 – Oded 2011-06-03 19:32:22

+0

在基礎設施中放置automapper配置更好,因爲如果我更改UI層,地圖會保留? – 2011-06-03 19:42:52

1

將視圖模型映射到域模型的地方通常是MVC體系結構中的控制器。現在你沒有太多關於你的架構,而「UI」和「Infra」不是很具體。

雖然基本上只能在已知DomainModel和ViewModel的地方調用AutoMapper配置。由於基礎結構不應該依賴於ViewModel,因此您應該在ViewModel(取決於域模型)或UI層(這將是MVC中的控制器)中進行映射。

+0

你在這裏假設MVC,OP沒有提到它。 – Oded 2011-06-03 19:25:42

+0

現在是;)另外,我的答案最終更通用,以MVC爲例。我覺得這是有幫助的具體,MVC是最知名的模式之一。 – mnemosyn 2011-06-03 19:36:02