看起来IValueFormatter接受object类型的值并返回string类型的值,而ValueResolver<TSource, TDestination>接受任何类型的值并返回任何类型的值。因此,它更加灵活。还有一个问题,使用ValueResolver,您无需将源强制转换为特定类型-您可以在类定义中明确定义它。

鉴于此,为什么要使用IValueFormatter?它可以执行ValueResolver无法完成的任何工作吗?我误会了它的工作原理吗?

最佳答案

最大的区别是格式化程序可以应用于成员,个人资料,类型和全局级别。因此,您可以在配置文件中执行“ForSourceType.AddFormatter()”之类的操作,现在执行blammo!所有小数现在都显示为money。解析程序严格用于自定义成员映射。

关于c# - 当AutoMapper具有看似更强大的ValueResolver时,为什么会有IValueFormatter?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2170485/

10-09 00:15