项目
版本

AutoMapper 值转换器(Value Transformers)

值转换器对单一类型应用额外的转换。在分配值之前,AutoMapper 会检查即将设置的值是否有任何关联的值转换,并在设置之前应用它们。

您可以在几个不同的级别创建值转换器:

  • 全局
  • 配置文件(Profile)
  • 映射(Map)
  • 成员(Member)
var configuration = new MapperConfiguration(cfg => {
    // 在全局级别添加字符串类型的值转换器
    cfg.ValueTransformers.Add<string>(val => val + "!!!");
});

var source = new Source { Value = "Hello" };
var dest = mapper.Map<Dest>(source);

// 断言 dest.Value 应该是 "Hello!!!"
dest.Value.ShouldBe("Hello!!!");

在这个例子中,我们定义了一个全局的值转换器,它会对所有映射过程中的字符串值追加 "!!!"。因此,当源对象 SourceValue 属性值为 "Hello" 时,经过映射后,目标对象 DestValue 属性变成了 "Hello!!!"

在本文档中