Ray*_*ond 8 .net global formatter automapper
我正在使用AutoMapper 3.2.1
我只是要求我的项目的消费者希望我做一些简单的转换 - 将所有字符串字段修剪为空格并将null转换为string.empty.
如何以高效的方式在AutoMapper中执行此操作?
例如
public class Person()
{
public string First {get; set;}
public string Middle {get; set; }
public string Last {get; set; }
public DateTime DateOfBirth {get; set; }
}
public class PersonDto()
{
public string First {get; set;}
public string Second {get; set; }
public string Last {get; set; }
public DateTime DateOfBirth {get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我的地图示例:
Mapper.CreateMap<Person, PersonDto>().
.ForMember(dst => dst.Second, opt => opt.MapFrom(src => src.Middle));
Mapper.CreateMap<PersonDto, Person>().
.ForMember(dst => dst.Last, opt => opt.MapFrom(src => src.Second));
Run Code Online (Sandbox Code Playgroud)
我试过谷歌找到答案,看到有些人正在使用:
Mapper.ForSourceType<string>().AddFormatter(MyCustomStringFormatter)
Run Code Online (Sandbox Code Playgroud)
但似乎AddFormatter已经过时了?
And*_*ker 14
如果您确实要将这些规则应用于所有字符串,则可以设置映射string到string:
Mapper.CreateMap<string, string>()
.ConvertUsing(str => (str ?? "").Trim());
Run Code Online (Sandbox Code Playgroud)
从一个string属性映射到另一个属性时,将获取此规则.