c# - 为什么 AutoMapper 有一个 IValueFormatter,而它有一个看似更强大的 ValueResolver?

标签 c# mapping automapper

它看起来像一个 IValueFormatter采用 object 类型的值并返回 string 类型的值, 而一个 ValueResolver<TSource, TDestination>接受任何类型的值并返回任何类型的值。所以,它更灵活。还有一个问题是,使用 ValueResolver ,您永远不需要将源转换为特定类型——您可以在类定义中明确定义它。

鉴于此,为什么要使用 IValueFormatter ?它能做 ValueResolver 做不到的事情吗? ?我是否误解了它的工作原理?

最佳答案

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

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

相关文章:

c# - 为什么 AutoMapper 创建浅拷贝?

c# - File.Exists 无法在网络驱动器上工作

c# - 字符串替换换行符

c# - 聪明的算法找到数字总和等于数字显示中的段数的时间

java - hibernate 数据库更改

java - oracle number(22,2) 的 hibernate 映射 java 类型

c# - 如何使用 AutoMapper 为特定映射映射空值?

c# - 从 JSON 检索项目时获取 'Cannot cast Newtonsoft.Json.Linq.JObject to Newtonsoft.Json.Linq.JToken'

c# - 如何使用 Automapper 将原型(prototype)文件重复类型的属性映射到 C# 类的列表属性?

Automapper:如何利用自定义 INamingConvention?