2011-06-03 130 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