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