我正在尝试在 API 包装类库项目中使用 AutoMapper 从 API 模型映射到我们的域模型。在查看 AutoMapper 文档时,我遇到了内联映射功能。
文档说:
AutoMapper 动态创建类型映射(6.2.0 中的新功能)。当您第一次调用 Mapper.Map 时,AutoMapper 将创建类型映射配置并编译映射计划。随后的映射调用将使用已编译的映射。
所以我在我的包装类库中编写了以下代码行:
var data = response.Results.Select(Mapper.Map<Session, Media>).ToList();
基本上只是试图将我从 API 获得的 Session 对象映射到我们的 Media 对象中。但这会引发以下错误:
映射器未初始化。使用适当的配置调用初始化。如果您尝试通过容器或其他方式使用映射器实例,请确保您没有对静态 Mapper.Map 方法的任何调用,并且如果您使用 ProjectTo 或 UseAsDataSource 扩展方法,请确保传入适当的 IConfigurationProvider实例。
我的印象是内联映射完全应该绕过必须为 AutoMapper 初始化和定义配置?我错了吗?
另外,如果我确实错了,那么您应该如何在类库中配置和初始化 AutoMapper,使其只发生一次?我希望库是独立的,这意味着我不希望使用库的程序员必须在他的项目中配置 AutoMapper 才能使库正常工作。