AutoMapper - 为何使用Map over DynamicMap?

Ada*_*kis 14 c# automapper

假设您使用AutoMapper进行映射的对象不需要自定义映射,那么执行此操作是否有意义:

Mapper.CreateMap<Src, Dest>(); 
// ....
Mapper.Map(SrcObject, DestObj);
Run Code Online (Sandbox Code Playgroud)

如果不需要自定义映射,上述方法是否只需使用DynamicMap就可以获得任何东西,而无需任何先前的配置?

Mapper.DynamicMap(SrcObject, DestObj);
Run Code Online (Sandbox Code Playgroud)

我也明白,DynamicMap需要的时候你映射匿名类型,但我想咨询一下是否DyanmicMap是以往任何时候都不能优先用于需要没有自定义映射静态类型.

ntz*_*lis 16

自从我上次使用Automapper以来已经有一段时间,但如果我没记错的话:

要使用Map,您需要首先明确指定这些地图CreateMap.之后,您可以通过呼叫验证您的配置AssertConfigurationIsValid.

这种情况发生在启动应用程序之后,而不是在执行期间遇到错误(假设您在启动时创建映射并进行验证,建议这样做).

还有一些类型与1:1不匹配,所以你想要指定精确的映射,不确定是否DynamicMap使用你手动引入的地图,实际上我认为它没有.
刚刚检查过,请DynamicMap回到github上当前版本的现有地图.

这也是性能问题,因为DynamicMap使用反射的Map方式比方法更重要,因为您已经指定了映射配置,并且大部分都不再需要动态断言.不过现在不确定新版本的Automapper是否正在执行这方面的缓存.