【发布时间】:2019-07-30 19:46:14
【问题描述】:
我的项目正在使用 AutoMapper 将动态对象转换为具体的类对象。每个具体类都有多个我想由 AutoMapper 修剪的字符串属性。有几十个这样的具体类,为每个映射设置一个 CustomTypeConverter 很乏味。我希望通过 ValueConverter 来实现这一点,如下所示:
这是我的映射器配置:
Mapper.Initialize(config =>
{
config.ValueTransformers.Add<string>(val => val.Trim());
});
这是我的 DTO 之一:
public class MyDto
{
public string MyProperty { get; set; }
}
这是我从动态映射到 MyDto 的方法:
public async Task<object> MyMethod(dynamic input)
{
MyDto dto = Mapper.Map<MyDto>(input);
// expect dto.MyProperty to be trimmed here, but it is not.
// do work
}
我对 ValueTransformers 的基本理解是否不正确?我是否已为我正在映射的每个 DTO 显式添加一个 CustomTypeConverter 并为我需要修剪的每个属性使用 ForMember?
【问题讨论】:
-
您可以创建一个从字符串到字符串的映射。
-
@LucianBargaoanu - 我也尝试过,但没有成功。
标签: c# automapper