自动映射器全局目标实例化器



我正在使用自动映射器将我的DTO映射到视图模型,我的一些视图模型依赖于服务。

我找到了几种使用这些依赖项构建目标对象的方法,但我想知道是否可以只使用全局对象解析器(在我的例子中为 UnityContainer)?

我目前的解决方案是这样的:

config.CreateMap<SurveyDTO, SurveyViewModel>()
                .ConstructUsing(x => _ObjectResovler.Resolve<SurveyViewModel>())

或者

config.CreateMap<SurveyDTO, SurveyViewModel>()
                .ConstructUsingServiceLocator()

但这意味着我必须在每个映射中包含这样的行。有没有办法只对所有映射使用解析程序而不在配置中指定它?

我通过使用解决了它

config.ForAllMaps((map, opts) => opts
          .ConstructUsing(x => _ObjectResovler.Resolve(map.DestinationType)));

对于服务定位器替代方案,您可以使用:

config.ForAllMaps((map, opts) => opts.ConstructUsingServiceLocator());

最新更新