我从另一个使用Automapper映射功能的开发人员组继承了代码库。该应用程序是一个.NET MVC Web应用程序,我看到Mapper.CreateMap语句遍布控制器/助手/等等。有时,映射完全相同(即,我在多个地方看到perl -n -e "s/${searchNQ}/${replace}/; print"
)但在其他地方,有时会有忽略语句(Mapper.CreateMap<Product, ProductViewModel>()
)
一遍又一遍地使用这些静态调用是不好的做法吗?我想我可以在其他地方的类中进行,但有些方法需要一些不同的设置,具体取决于方法。
答案 0 :(得分:2)
我不会调用Mapper.CreateMap - 它会让所有配置分散到各处都会让人感到困惑。
相反,我调用Mapper.Initialize,将其放在一个位置,并为每个AppDomain调用一次。在整个地方调用CreateMap并没有造成巨大的性能损失 - 它只是一个很大的丑陋。