【发布时间】:2018-06-15 08:50:27
【问题描述】:
在某些情况下,我的一个应用程序服务必须为前端生成带有匿名数据的 DTO。这个想法是使用不同的 AutoMapper 配置文件将域对象映射到所有属性映射的 DTO 或匿名 DTO。
我生成了这两个配置文件并将它们注入到服务中。 AutoMapper 也作为IMapper 注入到服务中,并包含应用程序的所有映射配置文件。
我现在需要的是告诉映射器在调用 Map 函数时使用一个特定的配置文件。 像这样的:
var anonymizedDto = _autoMapper.Map<SourceType, DestinationType>
(sourceObject, ops => ops.UseMappingProfile(_anonymizedMapingProfile));
var normalDto = _autoMapper.Map<SourceType, DestinationType>
(sourceObject, ops => ops.UseMappingProfile(_normalMappingProfile));
这可能吗?如果可以:怎么做?
【问题讨论】:
-
根据我的经验,将 AutoMapper 作为依赖项注入是一个坏主意。特别是在这种情况下,很难判断发生了什么,即在运行时将创建哪种 DTO。我建议
new使用所需配置在服务中设置映射器。
标签: c# automapper