我正在使用automapper将我的DTO映射到Viewmodels,我的一些视图模型依赖于服务。
我找到了几种使用这些依赖项构造目标对象的方法,但我想知道是否可以只使用全局对象解析器(在我的情况下是UnityContainer)?
我目前的解决方案是:
config.CreateMap<SurveyDTO, SurveyViewModel>()
.ConstructUsing(x => _ObjectResovler.Resolve<SurveyViewModel>())
或者
config.CreateMap<SurveyDTO, SurveyViewModel>()
.ConstructUsingServiceLocator()
但这意味着我必须在每个映射中包含这样的一行。 有没有办法只将解析器用于所有映射而不在配置中指定它?
答案 0 :(得分:1)
我使用
解决了这个问题config.ForAllMaps((map, opts) => opts
.ConstructUsing(x => _ObjectResovler.Resolve(map.DestinationType)));
对于您可以使用的servicelocator替代方案:
config.ForAllMaps((map, opts) => opts.ConstructUsingServiceLocator());