gpt4 book ai didi

c# - AutoMapper - 为什么使用 Map 而不是 DynamicMap?

转载 作者:可可西里 更新时间:2023-11-01 07:56:10 30 4
gpt4 key购买 nike

假设您使用 AutoMapper 映射的对象不需要自定义映射,这样做是否有意义:

Mapper.CreateMap<Src, Dest>(); 
// ....
Mapper.Map(SrcObject, DestObj);

如果不需要自定义映射,与仅使用 DynamicMap 而无需任何预先配置相比,上述方法对您有什么好处吗?

Mapper.DynamicMap(SrcObject, DestObj);

我知道当你映射匿名类型时 DynamicMap必需的,但我想问的是 DyanmicMap 是否曾经 < em>不推荐不需要自定义映射的静态类型。

最佳答案

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

为了使用Map,您需要先通过CreateMap 明确指定那些Map。之后,您可以通过调用 AssertConfigurationIsValid 来验证您的配置。

这会在启动您的应用程序后立即发生,而不是在执行过程中遇到错误(假设您创建了映射并在启动时进行了验证,这是推荐的做法)。

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

这也是一个性能问题,因为 DynamicMapMap 方法更频繁地使用反射,因为您已经指定了映射配置,而且大部分都不必指定蜜蜂在飞行中断言了。不确定新版本的 Automapper 现在是否在这方面执行缓存。

关于c# - AutoMapper - 为什么使用 Map 而不是 DynamicMap?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9740362/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com